【问题标题】:How do I redirect to a URL using a Google Chrome Extension & Content Script?如何使用 Google Chrome 扩展程序和内容脚本重定向到 URL?
【发布时间】:2011-02-01 06:37:47
【问题描述】:

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

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

【问题讨论】:

  • @jmort window.location 不起作用,因为内容脚本没有特权。此外,window.location.href 返回当前位置,但它不是一个方法,所以我无法覆盖它。

标签: javascript google-chrome-extension


【解决方案1】:

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

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

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

chrome.runtime.onMessage.addListener(function(request, sender) {
    chrome.tabs.update(sender.tab.id, {url: request.redirect});
});

【讨论】:

  • 完美,谢谢!也找到了这个 -> code.google.com/chrome/extensions/… 和这里的视频 -> code.google.com/chrome/extensions/content_scripts.html
  • 嗨,卡尔文。我知道这是一篇旧帖子,但我很欣赏你的建议,如果我尝试重定向到“yahoo.com”,我认为它有效,但如果我发送一个特定的 URL(我用 console.log 确认是正确的),Chrome 重定向我到 URL 前面带有 extensionID 的 URL。任何想法如何解决这个问题?所以 URL 最终是这样的: chrome-extension://injepfpghgbmjnecbgiokedggknlmige/mywantedurl.hmtl
  • 这似乎对我没有影响。
【解决方案2】:

如果您想访问 WebExtension 中的文件,可以将文件及其先决条件添加到 manifest.json 中的 web_accessible_resources,如下所示

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

【讨论】:

    【解决方案3】:

    我没有使用过 Google Chrome 扩展程序...但您可以使用 these ways 之一。

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

    【讨论】:

    • 如前所述,内容脚本是无特权的,因此不可能这样做
    猜你喜欢
    • 2014-08-17
    • 2020-08-19
    • 1970-01-01
    • 2017-01-25
    • 2022-11-07
    • 1970-01-01
    • 2011-09-28
    • 2012-03-17
    • 2023-04-07
    相关资源
    最近更新 更多