1

ページ index.html があります

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 <title>Lufia</title>
 <script language="javascript" type="text/javascript">
 function ajax()
 {

var xmlhttp;
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
else
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

xmlhttp.onreadystatechange=function()
  {if (xmlhttp.readyState==4 && xmlhttp.status==200)
   document.getElementById('mydiv').innerHTML=xmlhttp.responseText;
  }
  xmlhttp.open("GET",'welcome.html',true);
xmlhttp.send();
 }
 </script></head>
<body>


<button onclick="ajax();"></button><div id="mydiv"></div></body>
</html>

そして、welcome.html という別のページ

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 <title>Lufia</title>

<body onload="alert('ank');">welcome
</body>
</html>

welcome.htmlの body onload 属性にアラート関数が書かれているので、welcome.htmlがajax経由でロードされたときにankにアラートを出してほしい

4

1 に答える 1

0

まず、挿入しようとしている HTML が有効ではありません。形式が正しくない (ルート要素がない、head がない、head の外側にタイトルがある) だけでなく、ドキュメント フラグメント (ほとんどの人が AJAX 経由で HTML をロードしたときに返されるもの) ではありません。

そのため、ブラウザは新しい<body>タグを削除するなど、できる限りのことを行っています。削除されるため、イベントは明らかに発火できません。

それにしても、なぜこんなことをしているのですか?あなたはすでに同等のものを持っていonloadます - あなたはそれを使ってHTMLを<div>最初に入れています。そこで何かをするだけです。

補足:<script>ビアの追加innerHTMLがうまくいくと思われる場合は、次のようなアドバイスがあります。そうではありません。

于 2012-04-14T13:42:08.050 に答える