【问题标题】:How to access iframe in popup.html in a chrome extension如何在 chrome 扩展中访问 popup.html 中的 iframe
【发布时间】:2016-02-27 18:20:00
【问题描述】:

我有一个 chrome 扩展程序,它通过 popup.html 中的 iframe 打开网页

我需要做的是检测用户何时浏览到 iframe 中的某些 URL,然后将这些 URL 作为新选项卡打开。

我试图访问 iframe 的 .location,但不幸的是遇到了“chrome-extensions”和“http”之间的政策问题

我一直在研究,看到了很多关于使用内容脚本的说明,但我真的不明白它们是如何充分发挥作用的。大多数示例都试图将代码注入浏览器本身的当前页面,所以我认为它们不适用。我需要内容脚本吗?

任何帮助都是最有帮助的。

【问题讨论】:

    标签: javascript html google-chrome iframe


    【解决方案1】:

    不,这是不可能的,因为 chrome-extension 弹出窗口是不同的域站点,您无法在您的站点中访问它。

    【讨论】:

    • 所以即使使用内容脚本也无法将代码注入到 popup.html 内部的 iframe 中?
    • 恐怕不可能。
    • 这就是它不起作用的原因,哈哈。感谢您的帮助,让我省了很多麻烦。
    【解决方案2】:

    我一直在尝试做同样的事情,我在 SO 上找到了 this 答案。这对我有用,可能也适用于我们的情况。以防万一该链接将来可能停止工作,我在这里复制他的答案:

    "content_scripts": [{
        "matches": ["http://*/*", "https://*/*"],
        "js": ["content_frame.js"],
        "all_frames": true
    }],
    


    通过将all_frames 设置为true,您会将content_frame.js javascript 文件注入/包含到顶部文档和所有iframe 中。如果您只需要在 iframe 中注入 javascript 而不是在顶部文档中,您可以检查您的 content_frame.js 文件,如下所示:

    if (parent === top) {
        // here you can put your code that will run only inside iframe
    }
    

    【讨论】:

      猜你喜欢
      • 2017-10-22
      • 2012-07-24
      • 2012-10-27
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多