我的擴展在我不控制的現有網頁上運行。我想爲它提供一個選項頁面。我沒有想到的是如何從注入的代碼中獲取選項值。當然,localStorage
不是共享的。我試過在兩個方向上使用sendRequest/addListener,儘管將選項頁面中的值推送到注入的代碼比以其他方式推送更爲可取。從選項頁面獲取數據到注入的代碼
在開始的時候,我乾脆把操作頁面(一個代碼注入)的選項複選框,這些複選框中localStorage
設定值:
localStorage.showStuff = !!$(evt.target).attr(‘checked’);
然後我檢查這些值在代碼:
if (localStorage.showStuff == ‘true’) { … }
我感動的複選框代碼到選項頁,把它做一個sendRequest
當選項改變了,有我注入的代碼有消息監聽器,但它沒有得到消息(我的背景 頁面確實如此,但這並不能幫助我)。我也嘗試讓注入的代碼向選項頁面回調一個回調,但sendResponse
對象似乎只在通知處理程序期間工作(並不令人意外,但我不得不試一試)。
現在我的清單的permissions
列出了外文頁面("http://example.com/*"
)和「tab」
。
有一件事我知道我能做到通過回調異步查詢選項頁,但這些代碼不會(和真的不能)無嚴重改寫異步工作。
任何和所有的想法表示歡迎,在此先感謝。
所以,如果我理解你,這意味着我的選項頁面應該發送消息到我的背景頁面有關選項更改,並且注入的代碼應該詢問背景頁面的值。在我的情況下,注入的代碼似乎只要我所在的頁面一直存在,這就是我所需要的,但在任何情況下,這仍然使我面臨查詢與異步問題。但是這些信息很有幫助,我會嘗試應用它,謝謝! – kcrca