[英]Chrome Extension - Access iframe Elements
我正在使用content script
將iframe
附加到頁面,並將src
設置為chrome.extension.getURL(myPage)
。 稍后在某些事件中,我想從框架中檢索一些元素。 我在content script
嘗試了以下代碼:
var textFrame = document.getElementById('iframeId');
var text = (textFrame.contentDocument || textFrame.contentWindow.document).getElementById('someDivId');
但它會引發以下錯誤:
不安全的JavaScript嘗試使用URL chrome-extension訪問框架://ipkjfhkdgodpcgpjepdjhcbfcbbbcpee/TopBar.html來自URL為http://theInjectedPage.com/xxx/xxx/xxx的框架。 域,協議和端口必須匹配。
在manifest
文件中, 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"]
您的權限沒有任何問題,但我只是想知道為什么你從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);
我也上傳了這個示例擴展,你可以從這個鏈接下載它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.