私は最初のChrome拡張機能を書いていますが、これは数時間前に始めたばかりです。ハードコーディングすると、すべてがうまく機能しました。基本的に、私は8ページのフォームに記入しています。フォームの各ページは、個別のコンテンツスクリプトに対応しています。以前のコンテンツスクリプトは次のようになりました:(フィールドは標準ではないため、フィールドを見つけるのは少し難しいですが、私はそれについて心配していません..その部分は機能します)
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/etcを扱ったことがある人にとって、これを行うための「最良の」方法はありますか?
2)すべての変数名/値を設定する最も効率的な方法は何ですか?個別のリクエストで各フィールドを設定するよりも、(上記のような)ループを使用したいと思います。1ページあたり平均10フィールドです。
(私はおそらくhttp://developer.chrome.com/extensions/messaging.htmlの長くて厄介な形式を使用することができますが、より効率的/拡張可能/エレガントなソリューションを望んでいます)
どんな入力でも大歓迎です!