仅在 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");
}
);
}
我正在使用 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");
}
);
}