Chrome扩展程序:与弹出式

时间:2015-07-02 06:52:35

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

我正在撰写Chrome扩展程序,需要与用户尚未打开的网址进行互动。因此我使用嵌入在弹出窗口中的隐藏iframe,并尝试单击iframe中的按钮。但是,我收到相同的原始政策错误。我知道当iframe位于用户打开的标签上时,扩展程序可以通过内容脚本与不同域的iframe交互,但我不确定是否可以使用内容脚本与iframe交互直接在弹出窗口中。

这是我的代码:

的manifest.json

"content_scripts": [


{
    "js": [ "bin/jquery.min.js", "interaction.js" ],
    "all_frames": true,
    "run_at": "document_start",
    "matches": [ "http://*/*",
                 "https://*/*" ]
  }],

  "permissions": [
    "activeTab",
    "tabs",
    "http://*/",
    "https://*/"
],

interaction.js

$(document).ready(function() {
  $('div#iframes').append("<iframe id='shop' src='https://www.google.com/'></iframe>")
  $('iframe').bind("load", function() {
    $('iframe').contents().find("html").ready(function() {
      loadedStores += 1;
      if (loadedStores == carts.totalStores) {
        $('div#cost').append(carts.grandTotal)
        showMain();
      }
    })
  })
})

错误

Uncaught SecurityError: Blocked a frame with origin "chrome-extension://mapgjiofchdchalgcifmdolgcekfaadp" from accessing a frame with    origin "https://www.google.com/".  The frame requesting access has a protocol of "chrome-extension", the frame being accessed has a protocol of "http". Protocols must match.

错误发生在第三行的interaction.js中(使用加载回调)。有没有人知道我应该对内容脚本进行任何更改以允许我与iframe交互?或者如果还有其他方法我应该采取?谢谢!

1 个答案:

答案 0 :(得分:1)

您的框架也会注入内容脚本。

您需要使用Messaging与该内容脚本进行通信,并使其满足您的需求。

以下是一些进一步的信息: