3

有什么方法可以获取仅属于我的扩展程序一部分的选项卡的选项卡 ID?

4

3 回答 3

4
myTabs[i].location.reload()

出错:

Uncaught TypeError: Cannot call method 'reload' of undefined

但是这段代码:

chrome.tabs.executeScript(myTabs[i].id, {code:"document.location.reload(true);"});

作品。但最好使用正确的方法

chrome.tabs.reload(myTabs[i].id)
于 2012-10-17T19:12:28.863 回答
1

这实际上取决于您所说的“我的扩展的一部分”是什么意思。

如果您的意思是显示包含在您的扩展程序中的页面的选项卡,您可以执行以下操作;

chrome.tabs.query({}, function (tabs) {
  var myTabs = [];
  for (var i = 0; i < tabs.length; i++) {
    if (tabs[i].url.indexOf(chrome.extension.getURL('')) === 0) {
      myTabs.push(tabs[i].id);
    }
  }
  console.log(myTabs);
});

如果您想访问选项卡的 DOM,它会变得更加容易;

var myTabs = chrome.extension.getViews({type: 'tab'});

通过访问 DOM,您可以简单地迭代每个视图(DOMWindow)并刷新每个页面;

for (var i = 0; i < myTabs.length; i++) {
  myTabs[i].location.reload()
}
于 2012-02-24T09:30:31.790 回答
0

我尝试做同样的事情,但使用chrome.tabs.querychrome.tabs.get对我不起作用。这完美地工作:

var data = chrome.extension.getViews({'type':'tab'});
$.each(data, function(k,v) {
    v.window.location.reload();
});
于 2015-12-07T18:18:10.947 回答