簡體   English   中英

Chrome擴展程序 - 訪問iframe元素

[英]Chrome Extension - Access iframe Elements

我正在使用content scriptiframe附加到頁面,並將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM