我有一个页面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,因为alert函数写在welcome.html的body onload属性上
答案 0 :(得分:0)
对于初学者,您尝试插入的HTML无效。它不仅格式错误(没有根元素,没有头部,标题在头部之外),而且它不是文档片段(这是人们通过AJAX加载HTML时返回的大多数)。
因此浏览器尽其所能,其中包括删除新的<body>
代码。由于它被删除,事件显然无法触发。
为什么你这样做呢?您已经拥有相当于onload
的内容 - 您甚至可以使用它将HTML放在<div>
中。只是做那里的东西。
旁注:如果您认为通过<script>
添加innerHTML
会有效,请参考以下建议:不会。