0

iframe の onload イベントで Ajax ページを読み込もうとしています (可能であれば?)。

だから私はiframeを持っています:

<iframe onload="loadIjax('ipage','./page.php');"> <div id="ipage"></div> </iframe>

そしてJavascript

function loadIjax(divId,strURL)
 {

 if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
  {
  // show ajax response
  parent.document.getElementById(divID).innerHTML=xmlhttp.responseText;
  }
 }
 xmlhttp.open("GET",strURL,true);
 xmlhttp.send();
 }

したがって、ページが読み込まれるときに iframe 内に page.php を読み込むという考え方です。

私の質問ですが、これまでに書いたことは可能ですか? この時点では機能しません。問題は、Javascript が iframe で div を見つけられないことです。iframe の外に同じ div を配置すると機能します。

4

1 に答える 1

0

HTML を iframe タグ内に配置しても何も起こりません。間違った HTML です。

Iframe には、その中に完全なページが含まれています。つまり、独自のwindowとがありdocumentます。したがって、呼び出すdocument.getElementByIdときは、iframe 内ではなく、親ウィンドウで実行します。あなたがする必要があるのは、ドキュメントを通過する iframe 内の要素を探すことです。contentWindowこれを行うには、iframe のプロパティにアクセスします。

var iframe = document.getElementById('myIframeId');
iframe.contentWindow.document.getElementById('containerId').innerHTML = 'foo';
于 2013-03-27T13:40:31.390 に答える