2017-02-05 9 views
1

Являясь относительно новым для расширений Chrome, у меня есть, на мой взгляд, довольно простой способ заставить его произвести изменение.Обновление всех вкладок во всех окнах

chrome.tabs.getAllInWindow(null, function(tabs) { 
    for(var i = 0; i < tabs.length; i++) { 
     chrome.tabs.update(tabs[i].id, {url: tabs[i].url}); 
    } 
}); 

Код, открытый после расширения, обновляет все вкладки текущего окна. Есть ли аналогичный метод, который позволит мне перезагрузить все вкладки во всех окнах, а не только вкладки в текущем окне?

+1

https://developer.chrome.com/extensions/windows#method-getAll –

+0

У вас есть пример, пожалуйста? – UndefinedUsername

+0

Примечание: ['chrome.tabs.getAllInWindow()'] (https://developer.chrome.com/extensions/tabs#method-getAllInWindow) устарел с Chrome 33. Предпочтительный метод запроса вкладок в конкретном окно должно использовать ['chrome.tabs.query {windowId: windowID)'] (https://developer.chrome.com/extensions/tabs#method-query). – Makyen

ответ

2

Ваш вопрос не совсем ясен, поэтому я, возможно, неправильно его интерпретировал. Я понимаю, это означает, что вы хотите применить «обновление» к каждой существующей вкладке во всех окнах.

Для этого вы можете просто использовать chrome.tabs.query(), чтобы получить все существующие вкладки, не ограничивая его каким-либо конкретным окном. Я предположил, что вы хотите «обновить» те вкладки, которые находятся в обычных окнах. Это приведет не «освежающие» панели, которые открыли другие расширения, и т.д. Если вы хотите сделать все, то просто удалить `WindowType:«нормальный»

chrome.tabs.query({windowType:'normal'}, function(tabs) { 
    for(var i = 0; i < tabs.length; i++) { 
     chrome.tabs.update(tabs[i].id, {url: tabs[i].url}); 
    } 
}); 

Если по какой-то причине, вы хотите сделать это окно за окном, а не все в одном запросе, вы можете получить список окон от chrome.windows.getAll()

+0

Ты невероятный. Хорошо заслуженный тик. – UndefinedUsername