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