var win = window.open('cover.html','','height=50,width=150,titlebar=no,toolbar=no');
win.onbeforeunload = function(){ updateIcon();};
V.S。
chrome.windows.create(
{
url: "cover.html",
type: "popup",
width: 150,
height: 50
},
function(win)
{ win.onbeforeunload = function(){ updateIcon();}; }
);
在chrome api版本中未调用函数updateIcon()。我想知道为什么。这两段代码都在ubuntu linux上进行了测试。
答案 0 :(得分:0)
正如a comment中有用的解释:
chrome.windows.create
会返回不同类型的窗口:Chrome API Window object。它不允许您访问已打开文档的window
对象。
如果您需要检测从开放侧关闭窗口的时间,您可以收听chrome.windows.onRemoved
event并将窗口ID与您从create
获得的窗口ID进行比较。
如果您决定加入文档的unload
事件,可以使用cover.html
代码执行此操作
您可以使用chrome.extensions.getViews
- 但请注意,您必须查询type : "tab"
和而非"popup"
- 后者仅指Browser/Page Action popups ,而不是在弹出窗口中打开的常规页面。我知道这很令人困惑。
您提到自己找到了一个解决方案,表示关闭后台页面using runtime.getBackgroundPage
。作为一种替代方法,我可以向后台页面提供opening a Port - 然后可以监听该端口上的断开事件,该事件将在窗口关闭时触发。