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

Disabling / enabling javascript only in one tab from the Firefox/Chrome extension (using Web Extensions)

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

我想启用或禁用 [​​=26=],但每个选项卡,而不是全局。 IE。在第一个选项卡中它将被禁用,但在第二个选项卡中 - 启用。

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

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs

或者,也许有一种方法可以只用 Javascript 来做到这一点? 顺便说一句 - 这就是为什么我也用 Javascript.

标记了它

您可以使用 chrome.contentsettings API 执行此操作。您需要在 manifest.json:

中声明 "contentsettings" 权限
"permissions": [   
   "contentSettings"
 ]

然后,allow/disallow 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");
        }
    );
}