Javascript 如何创建自动重定向到特定链接的chrome扩展?

Javascript 如何创建自动重定向到特定链接的chrome扩展?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,嗨,我想创建一个chrome扩展,这样当用户在example1.com页面上时,即使在页面加载之前,他也会自动重定向到example2.com。无论用户是否在url中键入或通过链接到达url,这都应该有效 请帮帮我 谢谢。您不需要为此扩展。只需将example1.com重定向到example2.com的IP,然后在example2的服务器上创建一个虚拟主机,它将反向代理请求到实时主机。在后台页面: chrome.tabs.onUpdated.addListener(function(tabId,

嗨,我想创建一个chrome扩展,这样当用户在example1.com页面上时,即使在页面加载之前,他也会自动重定向到example2.com。无论用户是否在url中键入或通过链接到达url,这都应该有效

请帮帮我


谢谢。

您不需要为此扩展。只需将
example1.com
重定向到
example2.com
的IP,然后在example2的服务器上创建一个虚拟主机,它将反向代理请求到实时主机。

在后台页面:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    if(tab.url.indexOf("http://example1.com") == 0 && changeInfo.status == "loading") {
        chrome.tabs.update(tabId, {url: "http://example2.com"});
    }
});
当请求与特定Url匹配时,可以使用重定向请求。下面是一个示例代码:

chrome.webRequest.onBeforeRequest.addListener(
  modifyUrl, { urls: ['http://example.com/'] }, ['blocking']
);

modifyUrl: function(details) {
  if (details.url === 'http://example.com/') {
    return { redirect: 'http://www.requestly.in/' }
  }
}
以下是有关使用onBeforeRequest方法的一些详细信息:

  • 第一个arugument是回调处理程序,每当截获与作为第二个参数提供的Url模式匹配的请求时,就会调用该回调处理程序

  • 第二个参数,一组url或url模式或Regex,告诉chrome拦截这些url

  • 第三个参数是requestOptions,可以是
    阻塞
    请求体

  • 您可以阅读WebRequestAPI

    如果你正在寻找一个已经制作好的解决方案,它可以为你做同样的工作,你可以检查它。它甚至允许您将您的url与三个运营商匹配

    • 等于:严格匹配
    • 包含:指定url中的任何字符串
    • 匹配:一个基于JS的正则表达式,它匹配url中的某些内容
    为了更好地理解,请查看此屏幕截图


    希望能有帮助

    @user764894的问题显然有一个用例。如果您无法控制服务器,该怎么办。您只是访问公司网络上的服务器的用户,该服务器在网络内部解析为something.com,在网络外部解析为something.company.com(VPN)?它确实需要一个基于客户端的解决方案;i、 e浏览器扩展。不知道是否有一个扩展已经这样做了。我也在四处寻找这样的解决方案;与firefox中的foxyproxy非常相似(我认为;不确定)。它有一个基于正则表达式的重写配置,非常方便@CodeMedic试图在超级用户上提问。对使用
    匹配模式,然后用JS测试每个请求的URL的巨大低效性投反对票。请解决这个问题,我很乐意投票,因为这通常是正确的方法。@Xan感谢man在答案中指出了改进的范围。我已经更正了它,还添加了一些关于使用
    onBeforeRequest
    方法的细节。