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

时间:2011-05-22 14:57:27

标签: javascript google-chrome google-chrome-extension

您好我想创建一个chrome扩展程序,以便当用户在页面example1.com上时,即使在页面加载之前,他也会自动重定向到example2.com。无论用户是否输入网址或通过链接进入,都应该有效。

请帮助我!

感谢。

3 个答案:

答案 0 :(得分:4)

在后台页面中:

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

答案 1 :(得分:1)

您可以使用Chrome's webRequest API在与特定网址匹配时重定向您的请求。以下是示例代码:

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方法的一些细节:

  1. 第一个arugument,是你的回调处理程序,只要截获一个与你作为第二个参数提供的Url模式相匹配的请求就会调用

  2. 第二个参数,一组Urls或url模式或正则表达式告诉chrome拦截这些Urls

  3. 第三个参数,requestOptions,可以是blockingrequestBody

  4. 您可以阅读有关webRequest API here

    的信息

    如果您正在寻找可以为您提供技巧的已经制作的解决方案,您可以结帐Requestly,它可以为您完成同样的工作。它甚至允许您将您的网址与三个运营商匹配

    • 等于:严格匹配
    • 包含:指定url中的任何字符串
    • 匹配:基于JS的正则表达式,匹配url中的内容

    查看此屏幕截图以便更好地理解。

    enter image description here

    希望它有所帮助!!

答案 2 :(得分:-1)

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