我正在編寫我的第一個chrome擴展,並且在幾個小時前剛開始這個擴展。當它被硬編碼時,一切運行良好。本質上,我填寫了一份8頁的表格。表單的每個頁面都對應一個單獨的內容腳本。內容用於腳本看起來像這樣:(發現田野裏是比較困難的,因爲他們不是標準,但我不會that..that部分作品擔心)將多個變量傳遞給內容腳本chrome
var first_name = 'John';
var last_name = 'Doe';
...
...
document.getElementById('first_name').value = first_name;
document.getElementById('last_name').value = last_name;
這個工作很好(對我而言),但我想將它分發給幾個人,他們都不會/可以使用源代碼中的擴展名,直接編輯變量。所以我做了一個'選項'頁面,以此爲例: https://developer.chrome.com/trunk/extensions/options.html
選項頁面是要填寫的表單的樣機,並且每個用戶都可以在此處輸入其默認值。我的save_options()函數基本上(僞代碼):
foreach(fields as field) {
localStorage[field] = document.getElement....(field);
}
這工作正常。它可以正確保存,顯示存儲的值等。
當我嘗試訪問內容腳本中的變量時,就會出現問題。從我讀過的內容來看,這不可能(直接)完成,並且網上有各種方法可以顯示如何做到這一點。我想要做這樣的事情(內容腳本):
var first_name = localStorage["first_name"];
var last_name = localStorage["last_name"];
...
...
document.getElementById('first_name').value = first_name;
document.getElementById('last_name').value = last_name;
我的問題是:
1)對於那些你們誰處理了Chrome擴展/ localStorage的/ chrome.storage /等,有一個'最好'的方式來做到這一點?
2)什麼是最有效的方法來設置所有的變量名稱/值?我更喜歡使用單獨的請求來設置每個字段的循環(如上所述)。我平均每頁10個字段。
(我大概可以使用http://developer.chrome.com/extensions/messaging.html長,凌亂的形式,但我希望有一個更有效的/可擴展/優雅的解決方案)
任何輸入的感謝!
從我讀過你的代碼,內容腳本都不能訪問localStorage的(沙盒)。我錯過了什麼嗎? –
噢,如果是這樣的話,你可以通過[message passing](http://developer.chrome.com/extensions/messaging.html)獲得一些東西到後臺腳本。 –
chrome.extension.sendMessage({ greeting:「hello」 },function(response){ console.log(response.farewell); }); –