当我的Chrome扩展程序点击浏览器操作图标时,我想阻止它显示浏览器操作弹出窗口。我正在尝试使用浏览器操作图标来触发内容脚本的加载。
我该怎么做?
以下内容不会阻止它打开:
chrome.browserAction.onClicked.addListener(function (tab) {
alert('browserAction clicked');
return false;
});
这是我的manifest.json条目:
"browser_action": {
"default_icon": {
"19": "images/icon-19.png",
"38": "images/icon-38.png"
},
"default_title": "My extension"
}
文档说This event will not fire if the browser action has a popup
,但是,如您所见,我没有定义弹出窗口,但它仍然不起作用。
当您按下扩展按钮时,会发生以下情况。
-
如果您为当前选项卡定义了弹出窗口(例如,通过清单或
chrome.browserAction.setPopup
中的default_popup
键),则会显示该弹出窗口。chrome.browserAction.onClicked
未提出。 -
如果未为当前选项卡设置(或设置为空)弹出窗口,则会调度
chrome.browserAction.onClicked
。
因此,要永久禁用此功能,您只需从清单中删除default_popup
。要以编程方式禁用它,您需要取消设置它:
chrome.browserAction.setPopup({
popup: "",
// tabId: id // optional, restrict to a single tab
});