是否有某种方法可以获取仅作为我的扩展程序一部分的标签的标签ID?
答案 0 :(得分:4)
myTabs[i].location.reload()
犯了错误:
Uncaught TypeError: Cannot call method 'reload' of undefined
但是这段代码:
chrome.tabs.executeScript(myTabs[i].id, {code:"document.location.reload(true);"});
的工作原理。但最好使用correct method:
chrome.tabs.reload(myTabs[i].id)
答案 1 :(得分: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()
}
答案 2 :(得分:0)
我尝试做同样的事情并使用 chrome.tabs.query 和 chrome.tabs.get 对我不起作用。这非常有效:
var data = chrome.extension.getViews({'type':'tab'});
$.each(data, function(k,v) {
v.window.location.reload();
});