我使用iframe
将content script
添加到src
,chrome.extension.getURL(myPage)
设置为content script
。稍后在某些事件中,我想从框架中检索一些元素。我在var textFrame = document.getElementById('iframeId');
var text = (textFrame.contentDocument || textFrame.contentWindow.document).getElementById('someDivId');
中尝试了以下代码:
manifest
但它会引发以下错误:
不安全的JavaScript尝试使用URL访问框架 chrome-extension://ipkjfhkdgodpcgpjepdjhcbfcbbbcpee/TopBar.html来自 网址为http://theInjectedPage.com/xxx/xxx/xxx的框架。域, 协议和端口必须匹配。
在all_frames
文件中,true
设置为 "permissions": [
"tabs",
"chrome://favicon/",
"http://*/*",
"https://*/*"
],
"background": {
"scripts": ["Javascript/background.js"]
},
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["Javascript/References/jquery-1.7.min.js","Javascript/content_script.js"],
"run_at": "document_start",
"all_frames": true
}
],
"web_accessible_resources": ["TopBar.html","Javascript/TopBar.js","Javascript/References/jquery-1.7.min.js"]
。
请帮我解决这个问题。
更新:以下是我的清单文件的一部分:
{{1}}
答案 0 :(得分:2)
您的权限没有任何问题,但我只是想知道为什么你从chrome得到这个错误,TopBar.html页面试图访问该框架? 你是通过content_script创建iframe的吗? 你给iframe的网址是什么?
您可以在打开iframe的每个页面中查看它注入的代码示例。
<强>的manifest.json 强>
{
"name":"example",
"description": "",
"version": "1.0",
"manifest_version": 2,
"permissions": [],
"content_scripts": [
{
"all_frames": true,
"matches": ["http://*/*","https://*/*"],
"css": [],
"js": ["content_script.js"]
}]
}
和 content_script.js
var iframe= document.createElement("iframe");
iframe.setAttribute("width", "100%");
iframe.setAttribute("height", "200px;");
iframe.setAttribute("src", "http://gamalshaban.me/blog");
document.body.appendChild(iframe);
我也上传了此示例扩展程序,您可以从此link
下载