我想在页面动作或浏览器动作弹出窗口关闭时触发一些代码。我试着收听<body>
或window
上的onunload
和onbeforeunload
事件,但他们从未开火。如何检测动作弹出何时关闭?
4
A
回答
6
这是一个错误,但铬开发商发布了一个解决方法。
1
看起来好像没有直接的解决方案,如果有人感兴趣,这就是我最终做的。
定期从弹出窗口中ping背景页面,并且如果在某个时间段内未收到ping页面,则会触发所需的操作。工程就像一个定时炸弹:)
在后台页面:
var timeoutId = 0;
function popupPing() {
if(timeoutId != 0) {
clearTimeout(timeoutId);
}
timeoutId = setTimeout(function() {
popupClosed();
timeoutId = 0;
}, 1000);
}
function popupClosed() {
//...
}
在弹出:
ping();
function ping() {
chrome.extension.getBackgroundPage().popupPing();
setTimeout(ping, 500);
}
(注意,弹出坪比背景页 “触发” 时间快2倍)
相关问题
- 1. 检测iframe何时关闭
- 2. iOS:如何关闭弹出
- 3. 如何检测移动Safari何时关闭?
- 4. 检测用户是否在使用gapi.auth.authorize时关闭弹出框
- 5. 检测跨域弹出窗口关闭的时间
- 6. 弹出窗口不滚动时关闭
- 7. 检测线程何时关闭
- 8. 如何关闭弹出式窗口?
- 9. 如何关闭弹出窗口?
- 10. 如何关闭弹出错误消息
- 11. 如何关闭在硒webdriver弹出?
- 12. 如何关闭模式弹出窗口?
- 13. 如何关闭弹出对话框?
- 14. iPhone,在纠察片如何检测时的动作片关闭对象/解雇?
- 15. 如何打开弹出窗口并关闭弹出窗口?
- 16. Javascript检测何时弹出并弹出射击
- 17. 如何检测CSS与PHP关闭?
- 18. 如何检测一个SubView已关闭?
- 19. 如何检测IE11关闭事件
- 20. 如何检测浏览器关闭?
- 21. 如何检测关闭php标签?
- 22. 如何检测父进程的关闭?
- 23. 如何检测应用程序关闭?
- 24. 如何检测JFrame已关闭?
- 25. 检查一个弹出窗口关闭
- 26. 如何在关闭该弹出窗口的弹出窗口上制作按钮
- 27. 检查任务何时启动/关闭
- 28. primefaces弹出关闭
- 29. Chrome扩展程序:检测弹出窗口关闭
- 30. 使用Selenium检测Chrome中的弹出窗口的关闭
虽然我真的希望有一个更好的答案(如果没有,我们应该提交一个bug),这是一个很酷的黑客。一种死人的开关:http://en.wikipedia.org/wiki/Dead_man's_switch – npdoty 2010-10-11 23:27:51