拦截browserAction.onClicked以防止显示扩展页面

时间:2015-01-26 21:45:38

标签: google-chrome-extension

单击我的Chrome扩展程序的browserAction图标时,我想阻止它显示browserAction弹出窗口。我正在尝试使用browserAction图标来触发加载内容脚本。

我该怎么做?

以下内容并未阻止它打开:

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 个答案:

答案 0 :(得分:0)

当您按the extension button时,会发生以下情况。

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

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

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

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