ここで間違っていることを理解できません。親ウィンドウからiframe内の関数を呼び出す
私はサーバ側のないウェブサイトを構築しています メインページにiframeがあり、ボタンをクリックするとiframeのsrcが変更され、その中の関数が渡されたパラメータで呼び出されるようにします。
何らかの理由で関数が呼び出されていません。ここ
は私のコードです:
のiframe:
<iframe id="main_area_frame" name="main_area_frame" src="" frameborder="0" width="100%" height="100%"></iframe>
onclickの機能:
function onSubMenuClick(images)
{
//Set Images Frame
main_area = document.getElementById("main_area_frame");
main_area.src = "ImagesFrame.html";
main_area.contentWindow.initializeImages(images);
}
機能のiframe(ImagesFrame.html)中:
function initializeImages(imagesStr)
{
alert("initializeImages");
...
}
奇妙なものmain_area.contentWindow.initializeImages(images)の直前に警告を追加すると、
が表示されます。 関数が何とか正常に呼び出されます。
iframeのsrcを最初から設定して、main_area.src = "ImagesFrame.html"という行をスキップすると、 - 関数は再び呼び出されます。
それが原因であるが、私はインラインフレームをレンダリングすることができるようにするために、
main_area.src = "ImagesFrame.html";
と
main_area.contentWindow.initializeImages(images);
間の遅延(スリープ)を入れてみてくださいならば(私は
あなたはインラインフレームを非同期負荷があり、それが問題の原因だと正しい、など一般的にアクセスできるようになります。しかし、遅れではなく、iframeでonloadイベントをリスンする必要があり、そのイベントが発生したときにiframeの内容を操作することは安全です。 – jfriend00
もちろん、jfriend00メソッドは私よりも堅牢です。私のことは、原因の迅速なテストとして機能します。プロダクションでは、jfriend00プロポーザルを使用してください。 – SJuan76
ありがとう!よく働く! – koela1