用于刷新页面的chrome扩展API

chi*_*fet 22 google-chrome google-chrome-extension

是否有一个API以编程方式从浏览器操作按钮内刷新当前选项卡?我配置了后台页面,它通过以下方式附加一个监听器:

chrome.browserAction.onClicked.addListener(function(tab) { ... });
Run Code Online (Sandbox Code Playgroud)

因此,回调函数检索对其单击的选项卡的引用,但我没有在任何地方看到API来刷新/重新加载该选项卡.

Mit*_*tya 40

我想你要找的是:

chrome.tabs.reload(integer tabId, object reloadProperties, function callback)
Run Code Online (Sandbox Code Playgroud)

查看标签API()文档以获取更多信息.

  • 如果您不传递任何参数,它将刷新当前窗口的选定选项卡。 (5认同)

Mic*_*ryl 29

已弃用的答案使用的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});
});
Run Code Online (Sandbox Code Playgroud)

也许:

chrome.tabs.query({active: true, currentWindow: true}, function (arrayOfTabs) {
    chrome.tabs.reload(arrayOfTabs[0].id);
});
Run Code Online (Sandbox Code Playgroud)

我对第二个版本没有真正的运气,但其他答案似乎表明它应该有效.API似乎也表明了这一点.


Bor*_*mus 27

我建议使用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});
});
Run Code Online (Sandbox Code Playgroud)

参考这里


Jud*_*orn 7

进一步来说:

chrome.tabs.getSelected(null, function(tab) {
    chrome.tabs.reload(tab.id);
});
Run Code Online (Sandbox Code Playgroud)

  • getSelected()已被弃用 (4认同)

小智 5

你也可以使用这个:

chrome.tabs.reload(function(){});
Run Code Online (Sandbox Code Playgroud)

重载函数参数:整数tabId、对象reloadProperties、函数回调

参考:http : //developer.chrome.com/extensions/tabs.html#method-reload