【问题标题】:Disabling / enabling javascript only in one tab from the Firefox/Chrome extension (using Web Extensions)仅在 Firefox/Chrome 扩展的一个选项卡中禁用/启用 javascript(使用 Web 扩展)
【发布时间】:2017-05-08 09:03:45
【问题描述】:

我正在使用 Web 扩展系统为 Firefox/Chrome/Opera/etc 制作扩展(附加)。

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

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

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

或者,有一种方法可以只使用纯 Javascript 来做到这一点? 顺便说一句 - 这就是为什么我也用 Javascript 标记了它。

【问题讨论】:

    标签: javascript firefox-addon firefox-addon-webextensions


    【解决方案1】:

    您可以使用 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");
            }
        );
    }
    

    【讨论】:

    • 嘿,一年后:)但是,确实可以,谢谢!
    • 我知道:)。我自己也在为此苦苦挣扎,偶然发现了这个——一旦我弄清楚了,就想我会把它放在这里以供后代使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多