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通过ajax加载时提醒ank,因为警报功能写在welcome.html的body onload属性上

4

1 回答 1

0

对于初学者,您尝试插入的 HTML 无效。它不仅格式不正确(没有根元素、没有头部、头部外的标题),而且它不是文档片段(这是大多数人在通过 AJAX 加载 HTML 时返回的内容)。

所以浏览器正在尽其所能,包括剥离新<body>标签。由于它被删除,该事件显然无法触发。

你为什么要这样做?您已经拥有了等价物onload- 您甚至首先使用它来将 HTML 放在您<div>的位置。就在那里做事。

旁注:如果您认为添加<script>通孔innerHTML会起作用,这里有一些建议:它不会。

于 2012-04-14T13:42:08.050 回答