最近Chromeをバージョン55.0.2883.75に更新しました。 自分で開発したChromeプラグインを使用してHTMLファイルを解析しています。ここでchrome.tabs.executescriptを使用して背景HTMLページからデータを取得しています。 chrome.extension.onRequestを実行すると、バックグラウンドページの解析データがグローバル変数に保存され、chrome.tabs.executescriptのコールバック関数にアクセスして処理します。Chromeバージョン55のchrome.tabs.executescriptのグローバル変数にアクセスできません
バージョン55.0.2883.75にアップデートするまでこれは正常に機能していました。 新しいバージョンのグローバル変数にはどうすればアクセスできますか?
以下マイコード:
ステップ1:
chrome.extension.onRequest.addListener(
function (request, sender, sendResponse) {
parser = new DOMParser();
htmlDoc = parser.parseFromString(request.content, "text/html");
//outputJson is a global variable which is Populated here
outputJson = parseMyPage(outputJson, htmlDoc);
});
ステップ2:
chrome.tabs.getSelected(null, function (tab) {
// Now inject a script onto the page
chrome.tabs.executeScript(tab.id,{
code: "chrome.extension.sendRequest({content: document.body.innerHTML}, function(response) { console.log('success'); });"
}, function() {
//my code to access global variables
if (outputJson && null != outputJson) {
// other stuff
}
});
});
エクステンションを読み込んで実行するときに[*あなたのエクステンションのさまざまな適切なコンソール](http://stackoverflow.com/a/38920982/3773011)に表示されるものは何ですか? – Makyen
* manifest.json *を使用すると助かります。テストするためにマニフェストを作成する必要はありません。 – Makyen
話題になる質問を編集してください:問題を再現する*完全** [mcve]を含めてください*。 *マニフェストを含む。json *、背景/コンテンツ/ポップアップスクリプト/ HTMLの一部。デバッグの助けを求める質問(「**なぜこのコードは動作しないのですか?**」)には、以下が含まれていなければなりません:►必要な動作、►特定の問題またはエラー*、および►問題を再現するのに必要な最短コード自体**。明確な問題文がない質問は、他の読者にとって有用ではありません。参照してください: "**どのように[mcve] **を作成するか"、[ここで私はどんな話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)、[ask] – Makyen