次の問題を解決したい: ポップアップ ウィンドウがあり、そこにpopup.html
選択タグがあります:
<select id="chart_select">
<option id="chart_0" value="default">Select One</option>
<option id="chart_1" value="table_1">DISPLAY CLIENT VERSION USAGE CHART</option>
<option id="chart_2" value="table_2">DISPLAY MOST ACTIVE REALMS CHART</option>
<option id="chart_3" value="table_3">DISPLAY MOST ACTIVE USERS CHART</option>
<option id="chart_4" value="table_4">DISPLAY AVERAGE USER FRAMERATE CHART</option>
<option id="chart_5" value="table_5">DISPLAY AVERAGE REALM FRAMERATE CHART</option>
<option id="chart_6" value="table_6">DISPLAY USER LOGGED IN '' TIMES CHART</option>
<option id="chart_7" value="table_7">DISPLAY LOGINS per ORGANISATION</option>
</select>
だから、私localStorage['thetable']
は選択した値に保存します。たとえば、 を選択してDISPLAY LOGINS per ORGANISATION
、ローカル ストレージに保存"table_7"
します。
次に、background.html
次のように、localstorage からコンテンツ スクリプトにデータを渡します。
if(localStorage.getItem('thetable') != ""){
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {thetable: localStorage.getItem('thetable') }, function(response) {
if(response.dom != ""){
localStorage.setItem('thedom',response.dom);
}
});
});
}
この後、コンテンツ スクリプトはリクエストをキャッチし、id で指定された dom を含むレスポンスを localStorage('thetable') に格納する必要があります。
contentscript.js:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.thetable != "") {
sendResponse({dom: document.getElementById(request.thetable).innerHTML});
}
});
注: request.thetable
「table_7」である必要があります。dom は、サイトの innerHTML である必要があり<table id="table_7">
ます。それは存在します、私はこれらの要素をすべて作りました。
もう 1 つの追加情報として、選択値を の別のファイルにpopup.js
保存し、「table_7」をこのファイルの localStorage に保存します。しかし、localStorage は background.html からも利用できるので問題ないと思います。
流れ:
- 何かを選択します (fe: 組織ごとに DISPLAY LOGINS)
- をクリックし
"Save Btn"
、popup.html
「popup.js
table_7」を localStorage に保存します 次に、[Run Btn] をクリックして
popup.html
、popup.js
現在のタブをリロードします。chrome.tabs.getSelected(null, function(tab) { chrome.tabs.reload(tab.id); });
私の contentscript は、タブがリロードされたときにのみ情報を収集するため、これを行います。
リロード後、情報(「table_7」)で
background.html
リクエストを送信する必要がある と思いますcontentscript
contentscript は、サイト fe: から DOM を取得し、
document.getElementById("table_7").innerHTML
これをバックグラウンド ページに送り返します。
問題は、フローを実行すると、このアラートが表示されることです。
この問題を解決する方法を教えてください。:/ ありがとう