Javascript Chrome扩展-访问iframe元素
我正在使用Javascript Chrome扩展-访问iframe元素,javascript,google-chrome,iframe,google-chrome-extension,Javascript,Google Chrome,Iframe,Google Chrome Extension,我正在使用内容脚本将src设置为chrome.extension.getURL(myPage)向页面添加iframe。稍后在某个事件中,我想从框架中检索一些元素。我在内容脚本中尝试了以下代码: var textFrame = document.getElementById('iframeId'); var text = (textFrame.contentDocument || textFrame.contentWindow.document).getElementById('someDivId
内容脚本将src
设置为chrome.extension.getURL(myPage)
向页面添加iframe
。稍后在某个事件中,我想从框架中检索一些元素。我在内容脚本中尝试了以下代码:
var textFrame = document.getElementById('iframeId');
var text = (textFrame.contentDocument || textFrame.contentWindow.document).getElementById('someDivId');
但它会抛出以下错误:
不安全的JavaScript试图使用URL访问帧
铬-extension://ipkjfhkdgodpcgpjepdjhcbfcbbbcpee/TopBar.html 从…起
带有URL的框架。域名,
协议和端口必须匹配
在清单
文件中所有帧
都设置为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"]
你的权限没有问题,但我只是想知道为什么你从chrome上得到这个错误,页面TopBar.html试图访问框架??
您是否通过content_脚本创建iframe?
你给iframe的url是什么
您可以检查它在打开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\u 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);
我还上传了这个示例扩展名,您可以从这里下载它是让元素在内容脚本中运行的代码,还是background/popup.js?它在内容脚本中运行
。在清单中html文件列为web可访问文件吗@批量-是的,它列在web\u accessible\u resources
@NaveenBhat Hi Naveen中-只是想知道你是否找到了这个问题的答案。谢谢大卫,我查过了。我尝试了我能想到的所有可能的权限。然而,在我看来,跨域脚本编写是一个javascript
限制。还有其他解决办法吗?我用清单文件的一部分更新了这个问题。请让我知道,如果我遗漏了一些东西。是的,我正在从content\u script
向页面注入$(“#injected ifrmaeId”).attr('src',chrome.extension.getURL(topBarPage))
作为旁注:
当你在一天左右更新你的答案时,请使用前缀@
ex:@Knvn
评论相关人员。否则,将不会通知他。谢谢您的努力。然而,这并不能解决我的问题。我可以将chrome扩展资源页面
插入并加载到活动页面中。我的问题是从content script
上的iframe
检索内容时。