一旦弹出窗口打开或悬停,我正试图找到一种方法来更改扩展名的图标。 我在打开弹出窗口时找到了一种方法,使用:
chrome.browserAction.onClicked.addListener(updateIcon);
但是,找不到捕捉弹出关闭事件的方法。我试图从弹出代码中使用它:
var port = chrome.runtime.connect();
port.onDisconnect.addListener(function()
{
alert('closed');
});
但是没有成功。
有什么想法吗?
感谢。
答案 0 :(得分:2)
假设弹出页面连接到后台脚本,请尝试将Port.onDisconnect代码移动到后台脚本:
port.onDisconnect.addListener(function()
{
alert('closed');
});
我假设你的方式不起作用,因为关闭弹出窗口后,它已经死了,无法检测到Port.onDisconnect事件。如果你将它移到后台脚本,它应该仍然存在,当端口断开连接时会收到通知,并且可以更改按钮的图标本身!
对于悬停扩展时更改图标,取决于您是否在工具栏上的按钮悬停时执行此操作,或者在弹出页面悬停时执行此操作。如果你的意思是前者,我认为这是不可能的。如果你的意思是后者,弹出页面应该能够通过事件监听器和你的“updateIcon”函数来完成。