この場合、ポップアップを開くまでスクリプトは挿入されません。ポップアップウィンドウが読み込まれると、が挿入send_links.js
され、リンクの取得が完了するとすぐにメッセージが送信されます。このメッセージを逆にして、マニフェストにファイルを挿入できます。
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["send_links.js"]
}],
send_links.js
応答を送信するためのサポート付きのメッセージハンドラーをに追加します
chrome.extension.onMessage.addListener(function(message,sender,sendResponse){
[...]
sendResponse(links);
});
onMessage
次に、ハンドラーとexecuteScript
ポップアップをsendMessage
コールバックに置き換えます
chrome.windows.getCurrent(function (currentWindow) {
chrome.tabs.query({active: true, windowId: currentWindow.id},function(tab) {
chrome.tabs.sendMessage(tab[0].id, {method: "getlinks"},function(links){
for (var index in links) {
allLinks.push(links[index]);
}
allLinks.sort();
visibleLinks = allLinks;
showLinks();
});
});
});
この配置はsend_links.js
すべてのページに配置されるため、より簡単にデバッグできます。バグがなくなったら、プログラムによるインジェクションに戻すことができます。このような場合は、より効率的だからです。スクリプトは、[ソース]>[コンテンツスクリプト]>[そのうちの1つ](plfdheimenpnchlahmhicnkejgmhjhom
たとえば)にあります。
編集されたソースファイル