在Chrome扩展中重定向URL

vltsax25  于 2023-04-03  发布在  Go
关注(0)|答案(4)|浏览(452)

当我访问一个给定的URL时,如何在扩展中重定向Chrome?
例如:当我访问http://yahoo.com/时,我希望它重定向到http://google.com/

**注意:**此问题的前一个版本询问是否有任何Google Chrome扩展,当访问某个URL时会自动重定向标签。因此,下面的(目前有两个)答案解决了不同的问题。

pxyaymoc

pxyaymoc1#

有很多选择,其中一个比另一个更复杂。

  1. webRequest API,特别是onBeforeRequest事件。(更好的是,即将到来的declarativeWebRequest API)。
  2. Content scripts。在页面中注入location.replace('http://example.com')
  3. tabs API。使用onUpdated事件来检测页面何时更改了位置,使用chrome.tabs.update来更改其URL。但要避免无限循环!
    第一个是最好的一个,因为它甚至在页面被请求之前就被激活了。第二个可以在请求完成之后激活,但是在页面被呈现之前("run_at":"document_start")或者在页面被呈现之后("run_at":"document_end")。我提到最后一个是为了完整性,但是你不应该使用它,因为其他选项更好。
    这里有一个使用webRequest API的示例,这是一个简单的扩展,允许我浏览海盗湾上的页面,即使主要主机被我的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"]
);
4dc9hkyq

4dc9hkyq2#

我知道我现在回答这个问题有点晚了,但我还是想为未来的读者回答这个问题。

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

目前,您可以设置规则
1.重定向一个请求URL到另一个URL。
1.拦截部分请求。
1.替换URL中的部分字符串
1.修改头(添加/删除/修改请求和响应头)
更多了解的截图:

  • 规则列表

  • 规则类型卡

  • 新建重定向规则

  • 标题修改规则

路线图中有很多东西需要在requestly中覆盖,例如

  • 切换用户代理

还有更多
PS:我已经创建了这个,所以你可以责怪我,如果你不觉得这有帮助:)

brqmpdu1

brqmpdu13#

这个Chrome扩展可以很容易地重定向任何URL与简单的UI
你需要的只是添加你想要重定向的URL和你想要重定向的URL。

这个扩展是开源的https://github.com/vvmgev/Inssman Inssman还具有以下功能
1.阻止URL
1.修改查询参数
1.修改请求和响应的标头
1.修改响应
1.将文件注入到任何网页
1.分析HTTP标头

xwbd5t1u

xwbd5t1u4#

你可以使用我的扩展。进入“重写规则”选项卡,点击“+”按钮,添加一个新的重写规则。注意,重写规则实际上是一个RegEx,所以像/这样的字符必须转义
https://chrome.google.com/webstore/detail/dev-helper/kbbgddcndpjnadfacanamniaomcohlcc?hl=en

相关问题