【问题标题】:Is it possible to locally replace a website's Javascript when the page loads?页面加载时是否可以在本地替换网站的 Javascript?
【发布时间】:2016-02-09 15:15:17
【问题描述】:

我不是在谈论使用诸如greasemonkey 之类的插件来注入新的javascript。我说的是提供(可能是某种浏览器扩展)一个要加载的自定义 js 脚本而不是页面提供的脚本。

示例: 页面有<script src="script.js"></script>

我想告诉我的浏览器运行 X 代码而不是 script.js 中的代码

谢谢。如果问题不是很清楚,请见谅。

【问题讨论】:

  • 查看 Fiddler(在 Windows 上)或 Charles(在 Mac 上) - 它们是允许您操作请求/响应的本地代理,因此您可以将新响应(即您的自定义 javascript 文件)映射到文件请求。

标签: javascript jquery html web


【解决方案1】:

有几种方法可以在网页上以编程方式执行 Javascript。

添加另一个脚本标签

如果你可以将你的脚本保存在网络上的某个地方,那么你可以插入一个新的脚本标签来引用它。

var script = document.createElement('script');
script.setAttribute('src', 'http://yourscript.com/script.js');
document.body.appendChild(script);

或者,如果你能找到现有的脚本标签,你可以只更改源。

var script = document.getElementById('my-script');
script.setAttribute('src', 'http://yourscript.com/script.js');

评估代码

如果您已经有了要执行的代码,那么您可以编写一个脚本,使用 Javascript 的 eval 函数来运行它。

var code = '...';
eval(code);

警告!除非您绝对信任代码的来源,否则使用 eval 可能会很危险。

【讨论】:

    【解决方案2】:

    试试这个,这会在页面中注入一个脚本元素。我正在寻找删除现有元素的方法。

    <script type="text/javascript">
    document.write("<script src='codex.js'></script>");
    </script>
    

    【讨论】:

      【解决方案3】:

      在 chrome 中打开开发者工具(在 Windows 上按 F12),导航到您的 .js 源文件,然后立即修改您在显示的编辑器中看到的内容。只要页面没有刷新,Chrome 只会保留这些更改。页面刷新后,它会再次从服务器拖动文件,您的本地更改将丢失。

      您可以替换该文件中的代码。

      希望这就是你要找的东西!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多