javascript - Firefox 插件 SDK 替换请求

标签 javascript firefox-addon firefox-addon-sdk

我尝试用本地脚本替换网站加载的脚本的 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/

相关文章:

javascript - 为什么要使用外部 javascript?

firefox - 如何通过工具栏按钮 XUL 打开 Firefox AddOn 的首选项 Pane ?

javascript - 使用 angularJs 路由的 firefox sdk 插件

io - Mozilla Labs 的 Jetpack IO 功能是什么?

javascript - 如何销毁 AngularJS 中的 $emit 和 $broadcast 事件?

javascript - javascript 正则表达式中只有带有空格验证的数字

javascript - 在特殊事件上添加多个变量并输出到特定的 div。 (jQuery 和 Javascript)

javascript - Firefox Addon JSONP 访问中的 "(Callback method) is not defined"

firefox - 如何在 Firefox 扩展中修改 http 响应

python - 当我尝试使用 Mozilla Add-On SDK 运行 'cfx run' 或 'cfx test' 时,找不到我的应用程序二进制文件