【问题标题】:Chrome Extension Timed RedirectionChrome 扩展定时重定向
【发布时间】:2011-06-05 17:56:56
【问题描述】:

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

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

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

【问题讨论】:

标签: javascript google-chrome google-chrome-extension timed


【解决方案1】:

替代解决方案(我将删除 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);
});

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 哦,我现在明白了。谢谢!将来他们会提出更多关于 chrome 扩展的问题。
    猜你喜欢
    • 2012-08-17
    • 2012-03-17
    • 2015-10-11
    • 1970-01-01
    • 2016-11-05
    • 2014-08-17
    • 1970-01-01
    • 2016-02-08
    • 2018-08-21
    相关资源
    最近更新 更多