8

with set toiframeを使用してページに を追加しています。後でいくつかのイベントで、フレームからいくつかの要素を取得したいと思います。で次のコードを試しました:content scriptsrcchrome.extension.getURL(myPage)content script

var textFrame = document.getElementById('iframeId');
var text = (textFrame.contentDocument || textFrame.contentWindow.document).getElementById('someDivId');  

しかし、次のエラーがスローされます。

安全でない JavaScript が、URL http://theInjectedPage.com/xxx/xxx/xxxのフレームから URL chrome-extension://ipkjfhkdgodpcgpjepdjhcbfcbbbcpee/TopBar.html のフレームにアクセスしようとしています。ドメイン、プロトコル、およびポートが一致する必要があります。

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"]
4

1 に答える 1

2

あなたのパーミッションには何の問題もありませんが、ページ TopBar.html がフレームにアクセスしようとしているというクロムからこのエラーが発生したのはなぜですか?? content_script 経由で iframe を作成していますか? あなたがiframeに与えているURLは何ですか?

iframe を開く各ページに挿入されるこのコード サンプルを確認できます。

マニフェスト.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);

また、このサンプル拡張機能をアップロードしました。このリンクからダウンロードできます

于 2012-07-11T16:33:09.440 に答える