Safari擴展框架明確不支持擴展之間的消息傳遞。我正在尋找一個可行的黑客來解決這個問題,,而不讓頁面知道擴展正在運行。兩個Safari擴展如何相互通信?
推薦(未測試):
一個擴展打開隱藏標籤至約:空白#擴展通道與openTab()。另一個通過URL搜索該標籤並找到它。他們產生和消費該頁面上的元素進行通信。
如果擴展程序可以跨域讀取cookie,則其中一個將在隨後的頁面上設置一個隨機ID爲的cookie,另一個會讀取它。然後,他們創建DOM事件的名稱
extension-message-[the random ID]
」,所以頁面不能聽信訪Safari瀏覽器開發商onRequestExternal添加到他們的API。)
你能想到的另一種方法?你接受過任何上述的工作?
我還沒有嘗試過這個,但可能[window.postMessage](https://developer.mozilla.org/en/DOM/window.postMessage)有幫助嗎? – canisbos 2012-04-17 21:38:04