2

ユーザーがローカル マシン (Web サイトとしてホストされていない) で表示する HTML を作成するアプリケーションがあります。これは現在、IE と FireFox で正常に動作しますが、Chrome は、相互に対話するフレームを使用していることを好みません (したがって、アイテムをクリックすると、新しい html ファイルをコンテンツ フレームにロードするナビゲーション フレーム)。Chrome で安全でない JavaScript の試行が行われます - ドメインは一致する必要があります。そのため、必要なすべてのファイルを同じディレクトリ (同じドメイン内にある必要がありますか?) にある小さな例を作成しましたが、それでも問題が発生します。

私のコード例には、最初の html ページ内に 2 つの iFrame があります。最初の iFrame には、2 番目の iFrame のソースを変更するボタンがあります。かなり簡単です。

サンドボックス属性を使用してみましたが、役に立ちませんでした。

だからここに私のコードがあります:

start.htm

<body>
  <iframe id="fheader" src="NewHeader.htm" name="fheader" sandbox="allow-scripts allow-same-origin   allow-forms allow-top-navigation"></iframe>
  <iframe id="fbody" src="BodyLime.htm" name="fbody" sandbox="allow-scripts allow-same-origin allow-forms allow-top-navigation"></iframe>
</body>

header.htm

function myClick() {

   var myFrame = parent.document.getElementById("fbody");  

   myFrame.setAttribute("src", "BodyRed.htm");

}

<body style="background-color:Aqua">    
    <input id="Button1" onclick="myClick()" type="button" value="Change your neighbours colour"/>    
</body>

BodyRed.htm と BodyLime.htm は、コードが機能するかどうかを示す背景色が設定された単純なページです。

また、以下のコードでフレームにアクセスしようとしましたが、フレームの属性にアクセスしようとするとすぐに同じエラーが発生します:

  var myfbody = parent.fbody; 

誰かが助けてくれることを願っています。

4

0 に答える 0