私はクロム拡張機能のプログラミングが初めてで、これが私の最初の拡張機能です。
私が欲しいもの:今のところ、特定のhtmlタグが表示されている場合、ページに対してpageActionを実行したいと考えています。pageAction を実行するには、現在のタブの TabID を知る必要があるように思われるので、これを試してみましたが、うまくいきません (コード内のコメントを参照)。
manifest.json (私のマニフェストがどのように見えるかを示すためだけに、うまく動作します)
{
"manifest_version":2,
"name":"ExtensionName",
"description":"Description",
"version":"1.0",
"page_action":{
"default_icon":"icon.png",
},
"content_scripts":[
{
"matches":[
"http://www.domain.com/page.aspx"
],
"js":["searchTag.js"],
"run_at":"document_idle",
"all_frames":false
}
]
}
searchTag.js (コードは多かれ少なかれ、背景ページから現在のタブ ID を取得する方法で Arithmomaniac の回答に似ています)
if (document.getElementById("idIWant")) {
var currentTab;
alert(currentTab); //this works and gives an alert with "undefined"
//now the alert in the function callback doesn't work
chrome.tabs.query(
{currentWindow: true, active: true},
function(tabArray) {
alert(tabArray[0].id);
currentTab = tabArray[0].id;
}
)
}
では、私のコードの何が問題なのですか? chrome.tabs.query() を正しく使用していないようですが、表示されません。