重定向Chrome扩展程序中的URL

时间:2012-08-22 00:53:44

标签: google-chrome google-chrome-extension

如何在访问指定网址时重定向扩展程序中的chrome?

例如:当我访问http://yahoo.com/时,我希望它重定向到http://google.com/

3 个答案:

答案 0 :(得分:48)

有很多选择,一个比另一个更令人费解。

  1. webRequest API,特别是onBeforeRequest event。 (更好的是,即将到来的declarativeWebRequest API)。
  2. Content scripts。在页面中注入location.replace('http://example.com')
  3. tabs API。使用onUpdated event检测网页何时更改其位置,并使用chrome.tabs.update更改其网址。尽管避免无限循环!
  4. 第一个是最好的一个,因为它在页面被请求之前被激活。第二个可以在请求完成后,但在呈现页面之前("run_at":"document_start")或在呈现页面之后("run_at":"document_end")激活。我提到了最后一个完整性,但你不应该使用它,因为其他选项更好。

    这是一个使用webRequest API的示例,这是一个简单的扩展,允许我浏览Pirate托架上的页面,即使我的ISP取消了主要主机(实际的URL列表更长,但为了这个例子,我省略了它们 有关网址格式的说明,请参阅match patterns

    manifest.json

    {
      "name": "The Pirate Bay",
      "description": "Redirect The Pirate Bay to a different host",
      "version": "1.0",
      "manifest_version": 2,
      "background": {"scripts":["background.js"]},
      "permissions": [
        "webRequest",
        "*://thepiratebay.se/*",
        "*://www.thepiratebay.se/*",
        "webRequestBlocking"
      ]
    }
    

    background.js

    var host = "http://tpb.pirateparty.org.uk";
    chrome.webRequest.onBeforeRequest.addListener(
        function(details) {
             return {redirectUrl: host + details.url.match(/^https?:\/\/[^\/]+([\S\s]*)/)[1]};
        },
        {
            urls: [
                "*://piratebay.se/*",
                "*://www.piratebay.se/*"
            ],
            types: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"]
        },
        ["blocking"]
    );
    

答案 1 :(得分:18)

我知道我在游戏中有点迟到回答这个问题仍然我想为将来的读者回答这个问题。看看

Requestly - 用于修改网络请求的Chrome扩展程序。

目前,您可以为

设置规则
  1. 将请求网址重定向到另一个网址。
  2. 阻止部分请求。
  3. 用其他字符串替换网址中的某些部分
  4. 修改标题(添加/删除/修改请求和响应标头)
  5. 获取更多理解的屏幕截图:

    • 规则清单
      

    List of Rules

    • 规则类型卡
      

    Rule Type Cards

    • 新的重定向规则
      

    Creating a Redirect Rule

    • 标题修改规则
      

    Modify Headers

    路线图中有很多东西需要像

    那样被覆盖
    • 切换用户代理

    ..还有更多。

    PS:我创造了这个如果你没有找到这个有用的话你可以怪我:)

答案 2 :(得分:-1)

您可以使用我的扩展程序。转到“重写规则”选项卡,单击“ +”按钮并添加新的重写规则。请注意,重写规则实际上是RegEx,因此必须转义/等字符

https://chrome.google.com/webstore/detail/dev-helper/kbbgddcndpjnadfacanamniaomcohlcc?hl=en