0

我想要实现的是让 chrome 扩展在后台运行,每分钟它都会重定向到 google.com,然后一分钟后重定向到 stackoverflow.com,依此类推,直到扳手点击图标大多数扩展程序所在的图标。

但是我只知道如何使用 window.location.replace("http://google.com");重定向页面。

我仍在学习如何开发 chrome 扩展,并且只是为学习过程制作一些简单的东西。我开始从教程中学习,并尝试了几件事,现在我想弄清楚如何让这样的东西在后台运行。

4

2 回答 2

5

替代解决方案(我将 url 选择部分排除在外)。

背景.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);
});
于 2011-06-05T18:46:22.133 回答
1

您也可以只编写一个要注入的内容脚本,但这很简单,我只是将它存储在一个变量中。我建议查看chrome.tab API,因为 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);

在您的 manifest.json 中:

{
  ...
  "permissions": ["http://*/*", "tabs"],
  ...
}
于 2011-06-05T18:13:58.860 回答