web-dev-qa-db-ja.com

Uncaught SecurityError:Origin "null"のフレームがOrigin "null"のフレームにアクセスするのをブロックしました。プロトコル、ドメイン、ポートが一致する必要があります

ページにiframeを設定し、以下のスクリプトを使用してダブルナビゲーションバーを削除します。どのブラウザでも問題なく機能しますが、Chromeでは機能せず、垂直方向の2つのナビゲーションバーが表示されます。

function calcHeight() {
    //find the height of the internal page
    var the_height = document.getElementById('the_iframe').contentWindow.
                     document.body.scrollHeight;

    //change the height of the iframe
    document.getElementById('the_iframe').height = (the_height + 30) +"px";
}

Chromeで2つのエラーメッセージが表示されます。

  • 最初のエラーメッセージ:

    Uncaught SecurityError:Origin "null"のフレームがOrigin "null"のフレームにアクセスするのをブロックしました。プロトコル、ドメイン、ポートが一致している必要があります。

    そしてそれはエラーを指摘します:

    var the_height = document.getElementById('the_iframe').contentWindow.
                     document.body.scrollHeight;
    
  • 2番目のエラーメッセージは、jquery-1.10.2.jsにあります。

    Uncaught SecurityError: 'contentDocument'プロパティを 'HTMLIFrameElement'から読み取れませんでした:Origin "null"のフレームがOrigin "null"のフレームにアクセスするのをブロックしました。プロトコル、ドメイン、ポートが一致している必要があります。

    それはエラーメッセージを指摘します:

    elem.contentDocument || elem.contentWindow.document : 
    
9
abcid d

ローカルファイルシステムではなく、マシンにサーバーをセットアップして、そこからページをテストしてください。

Python 2の場合、python -m SimpleHTTPServer [port]
Python 3で、python -m http.server [port]
これにより、localhost:[port]。次に、ブラウザを起動してページに移動し、問題が解消するかどうかを確認します。

1
Yibo Yang