TyG*_*oss 7 javascript google-chrome google-chrome-extension
我正在开发的chrome扩展程序将内容脚本和css插入到网站的每个页面上.但是,用户可能有一个或多个他或她不希望扩展程序运行的页面,因此如果我可以将浏览器操作设置为基本上打开/关闭切换,那将会很棒.
我想做的是这样的事情:
chrome.browserAction.onClicked.addListener(function(tab) {
//IF ENABLED THEN DISABLE
//IF DISABLED THEN ENABLE
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
未提供此类API。但是存在两种可能的解决方法:
I.您可以使用“已禁用”标志变量,并从后台页面对其进行更新。
背景页面:
function disableExtension(disabled)
{
chrome.windows.getAll({populate : true}, function (window_list)
{
for (var i = 0; i < window_list.length; ++i)
{
var window = window_list[i];
for (var j = 0; j < window.tabs.length; ++j)
{
var tab = window.tabs[j];
if (checkContentScriptExists(tab))
{
chrome.tabs.executeScript(tab.id, {code : "disabled = " + disabled + ";"}, allTabs: true)
}
}
}
// No matching url found. Open it in the new tab
chrome.tabs.create({ url : url, selected: true });
});
}
Run Code Online (Sandbox Code Playgroud)
并且内容脚本应在运行前检查条件
if (!disabled) doSomething();
Run Code Online (Sandbox Code Playgroud)
二。在背景年龄内容内保存禁用变量的一种有争议的方法
背景页面:
function disableExtension(disabled)
{
global.disabled = disabled;
}
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.msg == "getDisabled") {
sendResponse({disabled: global.disabled});
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
并且内容脚本应在执行之前查询当前禁用状态
chrome.runtime.sendMessage({msg: "getDisabled"}, function(response) {
if (!response.disabled) doSomething();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18079 次 |
| 最近记录: |