javascript - Chrome 扩展 - 更改弹出图标 onClick/onHover

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

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

chrome.browserAction.onClicked.addListener(updateIcon);

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

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

但是没有成功。

有什么想法吗?

谢谢。

最佳答案

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

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

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

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

关于javascript - Chrome 扩展 - 更改弹出图标 onClick/onHover,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17262305/

相关文章:

c# - onkeydown 类型的事件在服务器端有意义吗?

javascript - 如何从url中获取utf参数?

javascript - nodejs 在命令参数中添加双引号?

google-chrome - 基于 Chrome 的浏览器不断崩溃并出现错误 61696

javascript - 在 Mozilla Firefox 上启用 Web Speech API

linux - 用户程序还是内核模块?

jquery - 将鼠标悬停在 Google map 中的自定义叠加层上

javascript - HTML 在点击时显示图像

javascript - removeEventListener 不工作

.net - Google Chrome 或 Firefox 可以嵌入到 WPF 中吗?