2010-08-14 136 views
2

我搞砸Safari擴展,我想我的擴展響應用戶打開或關閉標籤。等待消息發送window.onbeforeunload?

我有一個擴展注入一個腳本,當新標籤打開時運行,並通知全局頁面有一個新標籤打開。我希望腳本在選項卡關閉時也通知全局頁面。爲此,我將注入的腳本設置爲window.onbeforeunload函數,以調用safari.self.tab.dispatchMessage。這是有效的,但問題在於選項卡關閉,Javascript在消息傳遞之前被殺死。例如,如果我在dispatchMessage之後放置一個alert以阻止選項卡關閉,直到用戶單擊確定,消息纔會正常顯示,但這顯然不是很好的用戶體驗。

有沒有辦法在選項卡關閉之前購買一點額外的時間,還是有更好的功能來覆蓋這個或什麼?

回答

0

問題是,所有保存的消息(canLoad)都是異步的。國際海事組織,canLoad本身就是一個黑客攻擊,但是當我由於某種原因迫切需要同步消息時,我已經有效地使用了它。我問了一段analogous question,可能有助於說明canLoad解決方案/黑客攻擊。

+0

謝謝。是的,濫用canLoad是件很不好的事情,但沒有什麼可以做的。 – 2010-08-19 05:29:24