2015-01-26 50 views
0

当为我的Chrome扩展程序单击browserAction图标时,我想阻止它显示browserAction弹出窗口。我试图使用browserAction图标来触发加载内容脚本。拦截browserAction.onClicked以防止显示扩展页面

我该怎么做?

下并不妨碍它从开口道:

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,但是,你可以看到我没有定义弹出窗口,但它仍然不起作用。

+0

如果您没有弹出式设置,那么“browserAction HTML模板窗口”是什么意思? – Xan 2015-01-26 21:54:26

+0

@Xan我的意思是弹出。对不起,把术语弄糊涂了。修正了我的帖子。 – eComEvo 2015-01-26 21:56:07

回答

0

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

  1. 如果您对当前选项卡(例如,通过在清单或chrome.browserAction.setPopupdefault_popup键)定义的弹出式窗口,它被示出。 chrome.browserAction.onClicked没有提出

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

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

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

非常有趣!感谢您让我知道如何以编程方式禁用。仍然没有工作,但后来我删除了扩展条目,并再次加载解压后的扩展,现在它。欣赏替代路线! – eComEvo 2015-01-26 21:55:32

+0

“重新加载”链接应该没问题。 – Xan 2015-01-26 21:56:03

+0

不幸的是,没有工作。不知道为什么。 – eComEvo 2015-01-26 21:56:30