私はReload All Tabs拡張で全く同じ問題を抱えていました。基本的に、拡張機能が最初にインストールされると、ユーザーはタブを再読み込みするまで拡張機能を使用できません。ご存知のように、ユーザーのタブを自動的に再読み込みするのは悪いユーザーエクスペリエンスです。私はexecuteScript
を使ってしまいました。なぜなら、それは本当にユーザーには見えないからです。あなたはGitHubのに位置するソースコードを見ることができます:
https://github.com/mohamedmansour/reload-all-tabs-extension/blob/master/js/reload_controller.js#L96
それは最初にインストールしたときに基本的に私は拡張子を準備するために、この質問からインストールをターゲットにアプローチを使用Detect Chrome extension first run/updateとchrome.windows.getAll
を使用し、chrome.tabs.getAllInWindow
、およびchrome.tabs.executeScript
。
chrome.windows.getAll({ populate: true }, function(windows) {
for (var w = 0; w < windows.length; w++) {
var tabs = windows[w].tabs;
for (var t = 0; t < tabs.length; t++) {
var tab = tabs[t];
// Only inject in web pages.
if (tab.url.indexOf('http') == 0) {
chrome.tabs.executeScript(tab.id, { file: 'content_script.js', allFrames: true });
}
}
}
});
executeScriptが動作しない場合は、http://crbug.com/newでバグを報告し、開発者はそれを見ることができますしてください。私の場合、それはうまく動作します。
希望に役立ちます!
おそらく、プログラムですべてのタブを更新するだけではありません。 – serg