2分ごとにタブをリロードする拡張機能を作成しようとしていますが、インターネットがオフラインの場合でもリロードを試してみたいと思います(オンに戻ったときにリロードします)。ウィンドウでエラーが発生した場合 (オフラインなど)、location.reload() を使用しても機能しないため、最適な方法は chrome.tabs.reload() を使用することであると考えました。
問題は、すべての chrome.tabs で同様のエラーが発生することです。空の引数で試してみると、ドキュメントに従って現在のタブがデフォルトになるため、動作するはずですが、代わりに:
chrome.tabs.reload({});
Uncaught TypeError: Cannot call method 'reload' of undefined
現在のタブ ID を取得しようとすると、次のようになります。
chrome.tabs.query({currentWindow: true, active: true}, function (tabs) {
console.log(tabs[0]);
});
Uncaught TypeError: Cannot call method 'query' of undefined
同様に、すべてのシングルchrome.tabs
に「未定義のxxyyzzを呼び出すことはできません」という同様のエラーがあります。Chrome が私のタブを認識できなかったようです。何が起こっているのでしょうか?
私のmanifest.jsは次のとおりです。
{
"manifest_version": 2,
"name": "test",
"description": "",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"content_scripts": [
{
"matches": ["http://www.google.com/*"],
"js": ["reload.js"],
"run_at": "document_end"
}
],
"permissions": [
"tabs","storage","http://www.google.com"
]
}