1つのページから選択したすべてのテキストを集めるためにChrome拡張機能を開発しています。コンテンツスクリプトを使用して、選択したテキストを取得し、popup.jsに渡して配列に追加し、popup.htmlに表示したので、ユーザーがポップアップをクリックするたびに、選択したテキストが表示されます。Chrome拡張機能の変数値がpopup.jsで更新されていますか?
私が何かを選択すると、popup.htmlはそれを表示しますが、前に選択したテキストはすべて削除されています。配列は常に1の長さを保持します。ポップアップページをクリックするたびにそのページが更新されると思います。
私はそれを理解できなかったので、私を助けますか?私が知りたいのは、ポップアップがそれをクリックするたびに更新される場合、どのように変数を保存するのかです。そうでなければ、私の問題は何時でしょうか。
マイpopup.jsコードは以下の通りです:事前に
var totalSelection = [];
var selectionDisplay = '';
if (chrome.extension.getBackgroundPage().newSelectedText !== undefined) {
text = chrome.extension.getBackgroundPage().newSelectedText;
addTextInArray(text);
addTextToPopup();
if (totalSelection.length > 1)
console.log("length: " + totalSelection.length.toString() + "\n" + totalSelection.toString());
}
function addTextInArray(message) {
totalSelection.push(message);
selectionDisplay += "<p>" + message + "</p>";
}
function addTextToPopup() {
document.getElementById("container2").innerHTML = selectionDisplay;
}
多くの感謝!
また、[localstorage](https://developer.mozilla.org/en/docs/Web/API/Window/localStorage)を使用することもできます。これは 'chrome.storage'よりも簡単です –
ねえ、@ Transcendental @NoamHackerにはお返事ありがとうございました。それは有り難いです。 –
次の質問:変数を格納するために "chrome.storage"を使用する場合は、任意のスクリプトファイル(例:popup.js、background.js、contentScript.js)の変数を設定して取得できますか?変数がどのスクリプトによって定義されても、 "chrome.storage"に入るとすぐに、それはどのファイルでも利用できますか? –