1

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

chrome.browserAction.onClicked.addListener(updateIcon);

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

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

但是没有成功。

有任何想法吗?

谢谢。

4

1 回答 1

2

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

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

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

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

于 2013-06-24T03:03:17.713 回答