我目前正在構建一個Safari擴展。我有一個簡單的彈出式頁面,帶3個按鈕。點擊這些按鈕後,我需要在全局頁面上執行一些操作,包括操作localStorage和其他一些事情。如何將郵件從Safari擴展彈出窗口傳遞到全局頁面?
我似乎無法找到任何方式將信息從popover分發到全局頁面。似乎有一堆關於從彈出窗口分發到內容腳本的主題,但沒有任何內容涉及到全局頁面。
這可能非常簡單,我只是想念一些東西。將不勝感激任何幫助。
我目前正在構建一個Safari擴展。我有一個簡單的彈出式頁面,帶3個按鈕。點擊這些按鈕後,我需要在全局頁面上執行一些操作,包括操作localStorage和其他一些事情。如何將郵件從Safari擴展彈出窗口傳遞到全局頁面?
我似乎無法找到任何方式將信息從popover分發到全局頁面。似乎有一堆關於從彈出窗口分發到內容腳本的主題,但沒有任何內容涉及到全局頁面。
這可能非常簡單,我只是想念一些東西。將不勝感激任何幫助。
您不需要使用popover和全局頁面之間的消息傳遞。它們共享safari.extension
對象,因此您可以從另一個對象訪問任何一個的上下文。
從彈出窗口中,您可以通過safari.extension.globalPage.contentWindow
訪問全局頁面的函數和其他對象。例如,如果在全局頁面中有功能foo
,則可以使用safari.extension.globalPage.contentWindow.foo()
從彈出窗口調用它。
從全局頁面,您可以通過safari.extension.popovers[i].contentWindow
訪問popover的對象,其中i
是popover的索引。順便提一下,popovers和全局頁面共享同一個localStorage
對象,所以不需要使用popover中的safari.extension.globalPage.contentWindow.localStorage
; localStorage
本身將訪問全局頁面使用的同一商店。
謝謝,就這麼做! – Vivek
我在全局頁面中有一個函數getTimeline。當我嘗試使用safari.extension.globalPage.contentWindow.getTimeStamp訪問它形成彈出頁面時,出現以下錯誤「TypeError:safari.extension.globalPage.contentWindow.getTimeStamp不是函數。(在'safari.extension.globalPage.contentWindow。 getTimeStamp()','safari.extension.globalPage.contentWindow.getTimeStamp'未定義)「 –
它是'getTimeline'還是'getTimeStamp'? – canisbos