首页 文章

重定向Chrome扩展程序中的URL

提问于
浏览
23

在访问给定的URL时,如何在扩展中重定向chrome?

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

2 回答

  • 17

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

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

    目前,您可以为其设置规则

    • Redirect 另一个网址的请求网址 .

    • Block 一些要求 .

    • Replace URL中的某些部分与另一个字符串

    • Modify Headers (添加/删除/修改请求和响应标头)

    截图了解更多:

    • 规则清单
    • 规则类型卡
    • 新的重定向规则
    • Headers 修改规则

    路线图中有很多东西需要被覆盖

    • 切换用户代理

    ..还有更多 .

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

  • 44

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

    第一个是最好的,因为它甚至在页面被请求之前被激活 . 第二个可以在请求完成后但在页面呈现之前( "run_at":"document_start" )或呈现之后( "run_at":"document_end" )激活 . 我提到了最后一个完整性,但你不应该使用它,因为其他选项更好 .

    这是一个使用 webRequest API的示例,这是一个简单的扩展,它允许我浏览Pirate托架上的页面,即使主要主机被我的ISP取下(实际的URL列表要长得多,但我已经省略了它们这个例子的缘故) .
    有关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"]
    );
    

相关问题