Расширение Chrome Timed Redirection - PullRequest
0 голосов
/ 05 июня 2011

Я пытаюсь добиться того, чтобы расширение Chrome работало в фоновом режиме, и каждую минуту оно будет перенаправляться на google.com, а затем через минуту будет непрерывно перенаправляться на stackoverflow.com и так далее, пока не будет нажата иконкапо значку гаечного ключа, где большинство расширений.

Однако я знаю только о том, как перенаправить страницу, используя window.location.replace ("http://google.com");

Я все еще учусь накак разрабатывать расширения для Chrome и просто делать некоторые простые вещи для учебного процесса. Я начал учиться с этого учебного пособия и попробовал пару вещей, и теперь я хочу выяснить, как получить что-то подобноеработать с ним в фоновом режиме.

Ответы [ 2 ]

5 голосов
/ 05 июня 2011

Альтернативное решение (я оставляю часть выбора URL).

background.html:

var timer = setInterval(function() {
    chrome.tabs.getSelected(null, function(tab) {
        chrome.tabs.update(tab.id, {url: "http://google.com"});
    });
}, 60000);

//stop
chrome.browserAction.onClicked.addListener(function(){
    clearInterval(timer);
});
1 голос
/ 05 июня 2011

Вы также можете просто написать скрипт контента, который вы бы добавили, но достаточно просто, чтобы я просто сохранил его в переменной.Я бы порекомендовал взглянуть на API chrome.tab , так как Google очень хорошо документирует их API для разработчиков.

На вашей фоновой странице:

var REDIRECTION_SCRIPT_A = "window.location.href='http://www.google.com'";
var REDIRECTION_SCRIPT_B = "window.location.href='http://bit.ly/m2TXqC'";
var toGoogle = true;
var intervalId;

chrome.browserAction.onClicked.addListener(function() {
  clearInterval(intervalId);
});

// Execute redirection script on current page
// Note that you can select any tab based on its ID by replacing
// null below
function annoyUser() {
  console.log("test");
  chrome.tabs.executeScript(null, {code:
    (toGoogle ? REDIRECTION_SCRIPT_A : REDIRECTION_SCRIPT_B) });
  toGoogle = !toGoogle;
}

// Do once a minute ad infinitum
intervalId = setInterval(annoyUser, 5000);

В вашем манифесте. Json:

{
  ...
  "permissions": ["http://*/*", "tabs"],
  ...
}
...