仅在Firefox/Chrome扩展的一个选项卡中禁用/启用javascript(使用Web扩展)
我正在使用Web Extensions系统为Firefox/Chrome/Opera/etc做一个扩展(插件) 我想启用或禁用javascript,但不是全局启用或禁用每个选项卡。即,在第一个选项卡中,它将被禁用,但在第二个选项卡中,它将被启用 我试图在这里找到解决方案,但我看不到: 或者,有一种方法可以用纯Javascript实现这一点?仅在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
顺便说一句,这就是为什么我还用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");
}
);
}
呵呵,一年后:)但是,那确实行得通,谢谢!我知道:)。我自己也在努力解决这个问题,但偶然发现了这个问题——一旦我弄明白了,我就想把它放在这里,留给子孙后代。