仅在Firefox/Chrome扩展的一个选项卡中禁用/启用javascript(使用Web扩展)

仅在Firefox/Chrome扩展的一个选项卡中禁用/启用javascript(使用Web扩展),javascript,firefox-addon,firefox-addon-webextensions,Javascript,Firefox Addon,Firefox Addon Webextensions,我正在使用Web Extensions系统为Firefox/Chrome/Opera/etc做一个扩展(插件) 我想启用或禁用javascript,但不是全局启用或禁用每个选项卡。即,在第一个选项卡中,它将被禁用,但在第二个选项卡中,它将被启用 我试图在这里找到解决方案,但我看不到: 或者,有一种方法可以用纯Javascript实现这一点? 顺便说一句,这就是为什么我还用Javascript标记了它。您可以使用chrome.contentsettings API来实现这一点。您需要在manif

我正在使用Web Extensions系统为Firefox/Chrome/Opera/etc做一个扩展(插件)

我想启用或禁用javascript,但不是全局启用或禁用每个选项卡。即,在第一个选项卡中,它将被禁用,但在第二个选项卡中,它将被启用

我试图在这里找到解决方案,但我看不到:

或者,有一种方法可以用纯Javascript实现这一点?
顺便说一句,这就是为什么我还用Javascript标记了它。

您可以使用chrome.contentsettings API来实现这一点。您需要在manifest.json中声明“contentsettings”权限:

"permissions": [   
   "contentSettings"
 ]
然后,要允许/禁止Javascript,请执行以下操作:

this.setJavascript=function(setting){

    if(!(['allow','block'].includes(setting)) ){
        console.log("invalid setting passed to setjavascript");
        setting='allow';
    }

    //  *://www.example.com/*
    var pattern= "*://"+this.domain+"/*";
    chrome.contentSettings.javascript.set({
            'primaryPattern': pattern,
            'setting': setting,
        }, function () {
           // console.log("Javascript blocked");
        }
    );
}
呵呵,一年后:)但是,那确实行得通,谢谢!我知道:)。我自己也在努力解决这个问题,但偶然发现了这个问题——一旦我弄明白了,我就想把它放在这里,留给子孙后代。