Chrome扩展程序 - 更改onClick / onHover上的弹出图标

时间:2013-06-23 15:30:03

标签: javascript google-chrome events google-chrome-extension

一旦弹出窗口打开或悬停,我正试图找到一种方法来更改扩展名的图标。 我在打开弹出窗口时找到了一种方法,使用:

chrome.browserAction.onClicked.addListener(updateIcon);

但是,找不到捕捉弹出关闭事件的方法。我试图从弹出代码中使用它:

 var port = chrome.runtime.connect();
  port.onDisconnect.addListener(function()
  {
     alert('closed');
  });

但是没有成功。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:2)

假设弹出页面连接到后台脚本,请尝试将Port.onDisconnect代码移动到后台脚本:

  port.onDisconnect.addListener(function()
  {
     alert('closed');
  });

我假设你的方式不起作用,因为关闭弹出窗口后,它已经死了,无法检测到Port.onDisconnect事件。如果你将它移到后台脚本,它应该仍然存在,当端口断开连接时会收到通知,并且可以更改按钮的图标本身!

对于悬停扩展时更改图标,取决于您是否在工具栏上的按钮悬停时执行此操作,或者在弹出页面悬停时执行此操作。如果你的意思是前者,我认为这是不可能的。如果你的意思是后者,弹出页面应该能够通过事件监听器和你的“updateIcon”函数来完成。