拡張機能が実行されているタブを、現在 2 番目のウィンドウで作業している場合でも、一致が見つかったらすぐにウィンドウの前面に表示したいと考えています。
これまでのところ、私のcontent_script.jsにこのコードがありますが、うまくいかないようです。コメントされた行は、最後に失敗した試行です。
アラートは私に-1を与えました。これはかなり奇妙なタブ ID のようです。
if(output == 'found') {
sendResponse({findresult: "yes"});
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
//chrome.tabs.update(sender.tab.id, {selected: true});
//chrome.tabs.update(sender.tab.id, {active: true});
alert(sender.tab.id);
});
}
私もbackground.htmlでいくつかのことを試しましたが、すでにここに投稿されているすべての種類のものを試しましたが、すべてうまくいきませんでした。
これを機能させるにはどうすればよいですか?
編集
manifest.jsonスクリプトの組み込み
"background": {
"scripts": ["background.js"]
},
"content_scripts": [ {
"all_frames": false,
"js": [ "jquery.js", "content_script.js" ],
"matches": [ "http://*/*", "https://*/*" ],
"run_at": "document_idle"
}
background.js (アラートは表示されません)
alert("here");
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
your_tab_Id = sender.tab.id);
});
chrome.tabs.update(your_tab_Id,{"active":true,"highlighted":true},function (tab){
console.log("Completed updating tab .." + JSON.stringify(tab));
});
content_script.js jQuery の背景の変更 (sendResponse は機能しますが、背景を変更する行を有効にするとスクリプトが機能しなくなります)
if(found === true) {
//$('td:contains('+foundItem+')').css("background", "greenyellow");
sendResponse({findresult: "yes"});
}
EDIT 2 拡張機能のダウンロード