Javascript 如何更改firefox插件上的脚本位置?

Javascript 如何更改firefox插件上的脚本位置?,javascript,firefox,browser,google-chrome-extension,firefox-addon,Javascript,Firefox,Browser,Google Chrome Extension,Firefox Addon,制作firefox插件的最简单方法是什么,它重复了chrome的这一功能: chrome.webRequest.onBeforeRequest.addListener( function(info) { if(info.url.indexOf("notifier") + 1){ return {redirectUrl: "https://domain.null/1.js"}; } }, { urls: [ "*://domain2

制作firefox插件的最简单方法是什么,它重复了chrome的这一功能:

chrome.webRequest.onBeforeRequest.addListener(
  function(info) {
    if(info.url.indexOf("notifier") + 1){
        return {redirectUrl: "https://domain.null/1.js"};
    }

  },
  {
    urls: [
      "*://domain2.null/*"
    ],
    types: ["script"]
  }, ["blocking"]);
我知道firefox中的nsIContentPolicy,但我不知道如何使用它

所有的意见、建议和帮助都将不胜感激

回答 我已经确定了无重启扩展的问题
正如瓦拉迪米尔所说,为了阻止内容,我们可以使用nsIContentPolicy。我们还可以使用windowListener(aWindow.gBrowser)将脚本注入页面


例如,这种做法非常有效:

我不认为现在没有重大的黑客攻击就可以做到这一点。这是的主题,它将向中添加一个
redirectTo()方法。一旦实现,像这样的代码应该可以工作:

const Ci=Components.interfaces;
const Cu=Components.utils;
特写:进口resource://gre/modules/Services.jsm");
特写:进口resource://gre/modules/XPCOMUtils.jsm");
var观察员={
查询接口:XPCOMUtils.generateQI([
Ci.NSI观察员,
Ci.NSISupportsWakReference
]),
观察:功能(主题、主题、数据)
{
如果(主题==“修改请求时的http”&&
主题实例(Ci.nsIHttpChannel)
{
var uri=subject.uri;
if(uri.host==“domain2.null”&&&/\.js(\?\$)/.test(uri.path))
{
var redirectUri=Services.io.newURI(“https://domain.null/1.js",
空,空);
subject.redirectTo(redirectUri);
}
}
}
};
Services.obs.addObserver(observer,“修改请求时的http”,true);

供参考:,

Wladimir。非常感谢您的快速回答。我会试着用它。(另外感谢adblockplus)Wladimir,我可以通过扩展阻止在网页上加载某些脚本吗?@AndreiNikolaev:正如我所说,
redirectTo()
尚未实现,因此您无法使用它。但是,您已经可以调用某个频道来停止它。或者你可以,你会得到更好的上下文信息。哦,天哪,你救了我,使用这些API太难了,文档还不够,我真的不知道该怎么做。我一直在寻找如何使重定向URI持续数小时。