带有弹出窗口的chrome.browserAction.onClicked.addListener()

don*_*yor 7 javascript google-chrome google-chrome-extension

我想在每次点击浏览器图标时将Listener添加到触发的事件中.我还有一个弹出窗口,单击此图标即可出现.

我试过chrome.browserAction.onClicked.addListener()但没有把它解雇,后来我看到医生说:

Fired when a browser action icon is clicked. 
This event will not fire if the browser action has a popup. 
Run Code Online (Sandbox Code Playgroud)

所以,我有弹出窗口,所以这个监听器不起作用.在我的案例中,我可以采用哪种解决方法将Listener附加到图标?

Xan*_*Xan 7

将侦听器附加到该事件没有解决方法,但您可以使用消息传递让您的后台页面知道弹出窗口已打开.

在您的弹出窗口中,尽快:

chrome.runtime.sendMessage({popupOpen: true});
Run Code Online (Sandbox Code Playgroud)

在您的背景页面中:

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse){
  if(message.popupOpen) { /* do your stuff */ }
});
Run Code Online (Sandbox Code Playgroud)

  • 警告:在popup.html中你需要包含``script src ="popup.js"> </ script>``chrome.runtime.sendMessage({popupOpen:true});`如果你只是把JS代码放在脚本标签不起作用:S (2认同)