如何使用 Google Chrome 扩展和内容脚本重定向到 URL?

IT技术 javascript google-chrome-extension
2021-03-14 00:13:09

我目前正在构建一个 Google Chrome 扩展程序,它测试某些模式,如果找到,则将它们重定向到一个新的 URL。

我已经通过内容脚本完成了模式检查,现在我不确定如何继续完成重定向。有什么建议 ?

3个回答

将重定向 url 从内容脚本发送到后台页面:

chrome.runtime.sendMessage({redirect: "http://redirect"});

在会导致重定向的后台页面更新选项卡的 url 中:

chrome.runtime.onMessage.addListener(function(request, sender) {
    chrome.tabs.update(sender.tab.id, {url: request.redirect});
});
嗨卡尔文。我知道这是一篇旧帖子,但我感谢您的建议,如果我尝试重定向到“yahoo.com”,我认为它可以工作,但是如果我发送特定的 URL(我通过 console.log 确认这是正确的),Chrome 会重定向将扩展名附加到 URL 的 URL。任何想法如何解决这个问题?所以 URL 最终类似于:chrome-extension://injepfpghgbmjnecbgiokedggknlmige/mywantedurl.hmtl
2021-05-10 00:13:09
很好,谢谢!也找到了这个 -> code.google.com/chrome/extensions /... & 这里的视频 -> code.google.com/chrome/extensions/content_scripts.html
2021-05-12 00:13:09
这对我来说似乎没有影响。
2021-05-17 00:13:09

如果要访问 WebExtension 中的文件,可以将该文件及其先决条件添加到web_accessible_resourcesin 中manifest.json,如

{
  ...
  "web_accessible_resources": [
    "images/*.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js",
    "script/main.js",
    "templates/*"
  ],
  ...
}

我没有使用过 Google Chrome 扩展程序……但是您可以使用其中一种方式

据我了解,这些扩展 API 允许您将 javascript 注入到页面中......之后它对 window.location 的简单操作......

如前所述,内容脚本没有特权,所以不可能这样做
2021-05-12 00:13:09