在google-chrome扩展程序中加载iframe(错误:协议必须匹配)

时间:2013-01-12 12:45:40

标签: javascript google-chrome-extension roblox

manifest.json中的代码:

{
  "name": "Test",
  "version": "1.0",
  "manifest_version": 2,
  "description": "Test",
  "browser_action": {
      "default_icon": "icon.png",
      "default_popup": "popup.html"
  },
  "permissions": [
      "notifications",
      "https://www.roblox.com"
  ],
  "background": { "scripts": ["background.js"] },
  "content_security_policy": "script-src https://www.roblox.com 'self' ; object-src 'self'",
  "web_accessible_resources": [
    "icon.png"
  ]
}

background.js中的代码:

var iframe = document.createElement("iframe")
iframe.src = "http://www.roblox.com/User.aspx?ID=1"

document.body.appendChild(iframe)

我一直收到这个错误:

Unsafe JavaScript attempt to access frame with URL chrome-extension://dbekkpdpdheclekbpajgigjdlpleolgd/_generated_background_page.html from frame with URL http://www.roblox.com/User.aspx?ID=1. The frame requesting access has a protocol of 'http', the frame being accessed has a protocol of 'chrome-extension'. Protocols must match.

有没有解决这个问题?

1 个答案:

答案 0 :(得分:1)

代码中的问题是您的http://www.roblox.com/*来源不安全。 Chrome错误消息中的白名单仅限安全资源部分引用此信息。您必须使用https://www.roblox.com/*并声明

  

“content_security_policy”:“script-src https://roblox.com'self'; object-src'self'”

清单文件中的

。我发现您的域名正在通过

进行调用
  

http://www.roblox.com/Ads/IFrameAdContent.aspx?v=2&slot=Roblox_User_Top_728x90&format=banner&v=2

http网址,未列入白名单。

进一步阅读的参考资料