用我自己的替换执行从网站加载的 Javascript 文件

Replace Execution Of Javascript File Loaded From Website With My Own

网站http://example.com/website有柜台。此计数器从下载到计算机的 javascript 文件执行。

它包含一个在计数器达到 0 秒后更新页面的函数。这个 javascript 是从 http://example.com/scripts/timer.js 加载的,这个加载是从 http://example.com/websitehtml 喜欢 <script type="text/javascript" src="/scripts/timer.js"></script>

目标是改变计数器的时间。 所以我使用 FirefoxGreaseMonkeyAdBlockPlus 插件尝试了以下操作:

  1. 正在下载原始 timer.js 文件并更改它 (这工作正常).
  2. 使用 AdBlockPlus 插件阻止执行原始 "timer.js" (这工作正常)
  3. 正在使用 GreaseMonkey 插件从我的计算机执行编辑的 timer.js,方法是替换 html 中的脚本源] of http://example.com/websites (这行不通).

我已经尝试过这里 Greasemonkey - replace javascript src to load custom JS instead the one of the page 和这里提供的解决方案 Stop execution of Javascript function (client side) or tweak it 但由于某些原因,它们根本不起作用。定时器计数器没有显示在网页上,我花了一天时间弄清楚如何让它工作。

也许使用 Firefox 有更简单的解决方案?如果我没看错,主要思路是对的。

感谢您的帮助!

目前我只找到了下载和安装 Fiddler 网络调试代理并将 Firefox 代理设置更改为指定的解决方案提琴手。为了执行编辑后的文件,我使用了 Fiddler 的 规则在有指定 URL.

的请求时自动响应 与本地文件

正如您所说,可以使用 Fiddler 网络调试代理。

首先在浏览器上设置代理:127.0.0.1:8888让流量通过Fiedler

解决方案 #1:

然后从 AutoResponder 选项卡将 http://example.com/scripts/timer.js 地址设置为 http://example.com/scripts/timer_2.js 新地址,如下图所示:

解决方案 #2:

或者您可以使用 window 底部的 QuickExec 命令行和此命令的另一种方式:

urlreplace timer.js timer_2.js

这样,所有包含短语timer.jstimer_2.js的地址将被替换并加载新地址。

解决方案 #3:

或者,在命令行中输入:

bpa http://example.com/scripts/timer.js

执行此操作,在响应上放置一个断点。 然后您可以在页面到达浏览器之前修改页面内容。