我想要实现的是让 chrome 扩展在后台运行,每分钟它都会重定向到 google.com,然后一分钟后重定向到 stackoverflow.com,依此类推,直到扳手点击图标大多数扩展程序所在的图标。
但是我只知道如何使用 window.location.replace("http://google.com");重定向页面。
我仍在学习如何开发 chrome 扩展,并且只是为学习过程制作一些简单的东西。我开始从本教程中学习,并尝试了几件事,现在我想弄清楚如何让这样的东西在后台运行。
我想要实现的是让 chrome 扩展在后台运行,每分钟它都会重定向到 google.com,然后一分钟后重定向到 stackoverflow.com,依此类推,直到扳手点击图标大多数扩展程序所在的图标。
但是我只知道如何使用 window.location.replace("http://google.com");重定向页面。
我仍在学习如何开发 chrome 扩展,并且只是为学习过程制作一些简单的东西。我开始从本教程中学习,并尝试了几件事,现在我想弄清楚如何让这样的东西在后台运行。
替代解决方案(我将 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);
});
您也可以只编写一个要注入的内容脚本,但这很简单,我只是将它存储在一个变量中。我建议查看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"],
...
}