我尝试用本地脚本替换网站加载的脚本的 URL。
我尝试使用 data.url()
和 chrome://
(使用 contentaccessible= yes
标志在 list 中),但不起作用,所以我比较了一个正则表达式模式,如果为 true,它将取消 XHR GET 请求。
例如
<script src="http://url/to/script.js"></script>
成为
<script src="resource://url/to/new/script.js"></script>
或
<script src="chrome://url/to/new/script.js"></script>
现在我需要替换 url 或将新脚本注入(inject)页面
main.js
var listener = function (event) {
var channel = event.subject.QueryInterface(Ci.nsIHttpChannel);
var match = someFunctionToMatchRegex(channel.URI.spec);
if (match) {
channel.cancel(Cr.NS_BINDING_ABORTED);
}
};
events.on("http-on-modify-request", listener);
最佳答案
我有一个redirect module here这是你想做的事情的一个很好的例子。您也许可以使用它,尽管该模块目前仅采用特定的 url 而不是 reg 表达式。不过,我当然会接受拉取请求来进行此更改。
正如您提到的,代码基本上只是使用 redirectTo
,所以其他地方是错误的。
关于javascript - Firefox 插件 SDK 替换请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23189622/