我正在寫一個帶有彈出窗口和背景頁面的Google Chrome擴展。彈出窗口訂閱了背景生成的某些事件,並且我想在彈出窗口消失時取消訂閱這些事件。但是,我沒有看到從彈出窗口生成onbeforeunload或onunload事件。這些事件是否被解僱?如果沒有,關於如何捕捉彈出關閉的任何想法?onbforeunload事件是否觸發google.hrome擴展中的popup.html?
回答
我有過類似的問題。 就我而言,我將焦點放在彈出頁面中的元素上。 所以當彈出窗口關閉時,元素失去焦點,我可以捕捉模糊事件。
這個竅門對我不起作用 - 真的很有希望 - 但是沒有去。 – 2014-01-16 22:15:24
「beforeunload」爲而不是因瀏覽器動作彈出窗口而被解僱。相信我,我試過了。但是,「卸載」應該正確啓動,所以請仔細閱讀。
實際上,我有一個類似的系統,它允許您使用addEventListener附加事件,並且在unload事件觸發時自動清理它們。
以下是一個小建議:顯然,您不能使用console.log
,因爲在卸載事件觸發時,已經太晚了。但是,你可以這樣做:
var background = chrome.extension.getBackgroundPage();
addEventListener("unload", function (event) {
background.console.log(event.type);
}, true);
通過使用上面的代碼,你可以打開後臺頁面的控制檯,這應該表明卸載事件被解僱正確。
如果您已經切換到使用event pages而不是您的擴展中的後臺頁面,推薦訪問該方法的方式是調用chrome.runtime.getBackgroundPage()
,該函數使用後臺頁面引用回調函數。
然而,如果你試圖讓背景頁在onbeforeunload
處理,像這樣:
document.addEventListener("beforeunload", function() {
chrome.runtime.getBackgroundPage(function(backgroundPage) {
backgroundPage.log("unloading");
});
});
回調似乎不火的頁面卸載之前,讓log()
調用從未。
在上面的評論中,Pauan建議使用chrome.extension.getBackgroundPage()
來獲取頁面。我唯一能夠實現這個目標的方法不是創建addEventListener()
的處理程序。相反,我不得不去老學校,直接在window
設置處理:
window.onbeforeunload = function() {
chrome.extension.getBackgroundPage().log("unloading");
};
終於撥通了背景頁。
- 1. Chrome擴展幫助:從popup.html觸發變量CSS
- 2. 調試Chrome擴展的popup.html?
- 3. 是否從主頁面上下文中擴展的Chrome擴展中觸發DOM事件?
- 4. 是否有附加模塊或擴展模擬觸摸事件?
- 5. 是否可以擴展Intellitrace事件?
- 6. Global.asax中的Application_Error事件在瀏覽.php擴展時未觸發
- 7. 如何觸發並綁定Chrome擴展中的任意事件?
- 8. 在我的Firefox擴展中,onUninstalled事件似乎沒有觸發
- 9. 從Chrome擴展中觸發原生鍵盤事件
- 10. Chrome擴展程序 - popup.html是否存在於它自己的獨立DOM中?
- 11. 觸摸開始事件是否會觸發點擊事件?
- 12. 谷歌瀏覽器擴展程序(在擴展啓動時觸發事件)
- 13. Chrome擴展:的onclick()事件並未觸發警報()彈出
- 14. Chrome擴展圖標上的觸發事件
- 15. 如何捕獲擴展圖標上觸發的事件?
- 16. 檢查事件是否由人觸發
- 17. SDL_SetWindowSize是否觸發窗口事件?
- 18. 是否可以取消觸發事件?
- 19. 事件是否應該觸發自己?
- 20. URL更改時是否觸發事件
- 21. 鉻擴展選項更改默認popup.html
- 22. Chrome擴展程序:強制popup.html關閉
- 23. 項目擴展時如何觸發事件?
- 24. tfs isubscriber作業擴展運行事件不再觸發
- 25. 擴展事件vs觸發器用於審計SQL Server 2008
- 26. 擴展jQuery事件對象之前處理程序被觸發
- 27. Chrome擴展程序:元素創建時觸發事件嗎?
- 28. Visual Studio擴展菜單按鈕事件不會觸發
- 29. Android擴展文件不會觸發onDownloadStateChanged?
- 30. 數據觸發中的標記擴展
我有這個確切的問題。你有沒有找到答案? – 2010-05-17 15:53:38