gpt4 book ai didi

google-chrome - 在 Chrome 扩展程序中重定向 URL

转载 作者:行者123 更新时间:2023-12-02 19:49:12 45 4
gpt4 key购买 nike

访问给定 URL 时,如何在扩展程序中重定向 Chrome?

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

注意:此问题的前一个版本询问是否有任何 Google Chrome 扩展程序可以在访问特定 URL 时自动重定向选项卡。因此,下面的(当前两个)答案解决了不同的问题。

最佳答案

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

  1. webRequest API,特别是 onBeforeRequest event 。 (更好的是即将推出的declarativeWebRequest API)。
  2. Content scripts 。在页面中注入(inject) location.replace('http://example.com')
  3. tabs API。使用onUpdated event检测页面何时更改其位置,以及 chrome.tabs.update更改其 URL。但要避免无限循环!

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

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

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"]
);

关于google-chrome - 在 Chrome 扩展程序中重定向 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12065029/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com