拦截浏览器操作.单击以阻止显示扩展页



当我的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,但是,如您所见,我没有定义弹出窗口,但它仍然不起作用。

当您按下扩展按钮时,会发生以下情况。

  1. 如果您为当前选项卡定义了弹出窗口(例如,通过清单或chrome.browserAction.setPopup中的default_popup键),则会显示该弹出窗口。chrome.browserAction.onClicked未提出

  2. 如果未为当前选项卡设置(或设置为空)弹出窗口,则会调度chrome.browserAction.onClicked

因此,要永久禁用此功能,您只需从清单中删除default_popup。要以编程方式禁用它,您需要取消设置它:

chrome.browserAction.setPopup({
  popup: "",
  // tabId: id // optional, restrict to a single tab
});

最新更新