ブラウザのアクションボタン内から現在のタブをプログラムで更新するAPIはありますか?私はバックグラウンドページを構成しました。
chrome.browserAction.onClicked.addListener(function(tab) { ... });
そのため、コールバック関数はクリックされたタブへの参照を取得しますが、そのタブを更新/再ロードするためのAPIがどこにもありません。
_chrome.tabs.executeScript
_を使用して、window.location.reload()
を呼び出すJavaScriptを現在のタブに挿入することをお勧めします。何かのようなもの:
_chrome.tabs.getSelected(null, function(tab) {
var code = 'window.location.reload();';
chrome.tabs.executeScript(tab.id, {code: code});
});
_
参照 ここ
私が探しているのは:
chrome.tabs.reload(integer tabId, object reloadProperties, function callback)
詳細は tabs API()のドキュメント をご覧ください。
受け入れられた回答が使用するchrome.tabs.getSelected()のAPI 非推奨になりました。代わりに、現在のタブを取得し、次のようなものを使用して再読み込みする必要があります。
chrome.tabs.query({active: true, currentWindow: true}, function (arrayOfTabs) {
var code = 'window.location.reload();';
chrome.tabs.executeScript(arrayOfTabs[0].id, {code: code});
});
多分:
chrome.tabs.query({active: true, currentWindow: true}, function (arrayOfTabs) {
chrome.tabs.reload(arrayOfTabs[0].id);
});
他の答えはそれがうまくいくことを示唆しているようですが、私は2番目のバージョンでは本当に運がありませんでした。 APIもそれを示唆しているようです。
すなわち:
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.reload(tab.id);
});
これを使用することもできます:
chrome.tabs.reload(function(){});
リロード関数パラメーター:整数tabId、オブジェクトreloadProperties、関数コールバック
リファレンス: http://developer.chrome.com/extensions/tabs.html#method-reload
完全に読み込まれ、ウィンドウでアクティブになっているすべてのタブを再読み込みする場合
chrome.tabs.query({status:'complete'}, (tabs)=>{
tabs.forEach((tab)=>{
if(tab.url){
chrome.tabs.update(tab.id,{url: tab.url});
}
});
});
{status:'complete', active: true}
を参照して、アクティブなタブのみをフェッチするようにパラメーターオブジェクトを変更できます query api of chrome extensions
chrome.tabs.reload
を使用しない理由:
タブのプロパティ、特にtab.urlが変更されていない場合、タブはリロードされません。毎回強制的に再読み込みしたい場合は、プロパティの変更のイベントを送信する独自のtab.urlでタブURLを更新し、タブが自動的に再読み込みされるようにします。