プロジェクトに取り組んでいるときに、iframe の操作に関連する問題が発生しました。実際、iframe 内でフォームを操作するときは、親フォームの関数が呼び出されます。そこで、テスト用に 2 つの非常に単純な HTML ページを作成しました。一般的なオンライン方法を使用すると、Google Chrome は常にエラーを報告し、失敗しました。 親ページparent.htmlのコードは次のとおりです コードをコピーします コードは次のとおりです: > ParentFunction() { <br>alert ('ParentFunction') <br> サブページ child.html のコードは次のとおりです以下のように コードをコピー コードは次のとおりです: < /script> <div class="codebody" id="code83824"><script type="text/javascript"> <br>$(document).ready(function () { <br>$ ("#btnTest").click(function (e) { <br>var t=window.parent; <br>t.ParentFunction(); <br>}) <br></ script></head> <br><body> <br><input type="button" id="btnTest" class="button" value="取得すべき値" />rrr <br></body> <br></html> <br><br> <br>IE では var t=window.parent; を呼び出すことができます。 Google Chrome では、常に次のエラーが表示されます。<br>オリジン "null" のフレームへのアクセスをブロックしました。<br> をオンラインで検索しています。長い時間がかかりましたが、それらのいくつかは非常に古いバージョンであり、基本的には役に立たず、他の人が言っているだけで、基本的にテストされていません。そこで自分で調べてみたところ、実はGoogle Chrome上での方法も可能であることが分かりましたが、ファイルシステム内で呼び出すと使用前に解放しなければならないのが不思議です。 <br>実際には、別の HTML5 メソッド postMessage があるので、それに合わせて書き直しました。 <br>親ページparent.html のコードは次のとおりです。</div> <br><br> <br><br> コードをコピーします <br><br><div class="codetitle"> コードは次のとおりです: <span><a style="CURSOR: pointer" data="61798" class="copybut" id="copybut61798" onclick="doCopy('code61798')"> <u><html xmlns="http://www.w3.org/1999 /xhtml"> </u><head><title> </a></title> </span><script src="jquery-1.10.1.min.js" type="text/javascript" > <div class="codebody" id="code61798">this.ParentFunction= function() {//これはコメントアウトされたメソッドと同じです。これは Windows <br>alert('ParentFunction'); <br>} <br>// function ParentFunction() { <br>// alter('ParentFunction') であるため、これを追加してもしなくても同じです。 ); <br>// } <br>function acceptMessage (e) { <br>var data = e.data; <br>if(data=="ParentFunction") <br>{ <br>ParentFunction() ; <br>} <br>} <br>if ( typeof window.addEventListener != 'unknown') {//HTML5 を使用した postMessage を処理する必要があります <br>window.addEventListener('message', acceptMessage, false); >} else if (typeof window.attachEvent != 'unknown') { <br>window.attachEvent('onmessage', acceptMessage) <br> > サブページ child.html コードは次のとおりです コードをコピーします コードは次のとおりです: document).ready(function () { <br>$("#btnTest").click(function (e) { <br>var t=window.parent; <br>if(!t.ParentFunction)//inサポートされていない場合は、html5 postMessage メソッドを使用します。 <br>{ <br>t.postMessage("ParentFunction", '*'); <br>else <br>{ <br>t.ParentFunction(); <br>} <br>}); <br>}) <br> rrr