API расширения Chrome для обновления страницы
Существует ли API для программного обновления текущей вкладки внутри кнопки действия браузера? У меня настроена фоновая страница, которая прикрепляет слушателя через:
chrome.browserAction.onClicked.addListener(function(tab) { ... });
Таким образом, функция обратного вызова извлекает ссылку на вкладку, с которой она была нажата, но я не вижу API где-нибудь, чтобы обновить/перезагрузить эту вкладку.
Ответы
Ответ 1
Я рекомендую использовать chrome.tabs.executeScript
для ввода javascript, который вызывает window.location.reload()
на текущей вкладке. Что-то вроде:
chrome.tabs.getSelected(null, function(tab) {
var code = 'window.location.reload();';
chrome.tabs.executeScript(tab.id, {code: code});
});
Ссылка здесь
Ответ 2
Я думаю, что вы ищете:
chrome.tabs.reload(integer tabId, object reloadProperties, function callback)
Подробнее вкладки API() для получения дополнительной информации.
Ответ 3
API для chrome.tabs.getSelected(), который использует принятый ответ, устарел. Вместо этого вы должны получить текущую вкладку и перезагрузить ее, используя следующее:
chrome.tabs.query({active: true, currentWindow: true}, function (arrayOfTabs) {
var code = 'window.location.reload();';
chrome.tabs.executeScript(arrayOfTabs[0].id, {code: code});
});
Или, возможно:
chrome.tabs.query({active: true, currentWindow: true}, function (arrayOfTabs) {
chrome.tabs.reload(arrayOfTabs[0].id);
});
Мне не повезло со второй версией, хотя другие ответы, похоже, подсказывают, что это должно сработать. API, похоже, тоже предлагает это.
Ответ 4
Более конкретно:
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.reload(tab.id);
});
Ответ 5
вы также можете использовать это:
chrome.tabs.reload(функция() {});
параметры функции перезагрузки:
integer tabId, object reloadProperties, обратный вызов функции
ссылка: http://developer.chrome.com/extensions/tabs.html#method-reload