2011-06-05 60 views
0

我想要實現的是在後臺運行一個Chrome擴展,每分鐘重定向到google.com,然後一分鐘後重定向到stackoverflow.com等等。該圖標被大多數擴展所在的扳手圖標點擊。Chrome擴展定時重定向

但是,我只知道如何重定向一個頁面使用 window.location.replace(「http://google.com」);

我仍在學習如何開發chrome擴展,以及爲學習過程製作一些簡單的東西。我開始從this教程中學習,並嘗試了幾件事情,現在我想弄清楚如何讓它像後臺運行一樣。

+0

你想重定向哪個選項卡或頁面? – brymck 2011-06-05 18:02:40

+0

沒有頁面,只是一個學習過程。我抓住了一個隨機的網址(http://stackoverflow.com/questions/6166121/drupal-android-app-login-persistence) – 2011-06-05 18:15:43

回答

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"], 
    ... 
} 
+0

哦,我現在明白了。謝謝!關於Chrome擴展,他們未來會有更多的問題。 – 2011-06-06 00:36:11

5

替代的解決方案(我離開網址選擇部分出)。

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); 
}); 
+0

+1不知道爲什麼我錯過了'chrome.tabs.update' – brymck 2011-06-05 18:49:17