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

发布于 2024-11-08 23:47:00 字数 143 浏览 0 评论 0原文

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

请帮助我!

谢谢。

Hi I want to create a chrome extension so that when the user is on the page example1.com he would automatically be redirected to example2.com even before the page loads. this should work whether or not the user types in the url or goes there through a link.

Please help me in this!

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

榆西 2024-11-15 23:47:00

在后台页面:

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

In background page:

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"});
    }
});
回忆凄美了谁 2024-11-15 23:47:00

您可以使用 Chrome 的 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. 第一个参数是回调处理程序,每当拦截与作为第二个参数提供的 Url 模式匹配的请求时就会调用该回调处理程序

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

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

您可以在此处阅读有关 webRequest API 的信息,

以防您正在寻找现成的解决方案可以帮您解决这个问题,您可以查看 Requestly 为您做同样的工作。它甚至允许您将 url 与三个运算符进行匹配

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

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

希望它有帮助!

You can use Chrome's webRequest API to redirect your request when it matches a particular Url. Here is a sample code:

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/' }
  }
}

Here are some details about using onBeforeRequest method:

  1. first arugument, is your callback handler which is invoked whenever a request is intercepted which matches your Url patterns provided as second argument

  2. second argument, A set of Urls or url patterns or Regex which tells chrome to intercept those Urls

  3. third argument, requestOptions which can be blocking or requestBody.

You can read about webRequest API here

Just in case you are looking for an already-made solution that can do the trick for you, you can checkout Requestly which does the same work for you. It even allows you to match your url with three operators

  • Equals: Strict match
  • Contains: Specify any string which comes in url
  • Matches: A JS based regex which matches something in url

Have a look at this screenshot for better understanding.

enter image description here

Hope it helps!!

岁月蹉跎了容颜 2024-11-15 23:47:00

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

You don't need an extension for this. Just redirect example1.com to the IP of example2.com, then create a virtualhost on example2's server wich will reverse proxy the requests to the live host.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文