我用ajax获取一个页面放在原来页面的一个div里 那么我的ajax页面里的javascript的alert没有运行,请问是为什么?
ajax请求函数(写在原页面里的):
<script type="text/javascript">
window.onload = function(){
document.getElementById("us").onclick = function(){
var request = new XMLHttpRequest();
var url = this.href;
var method = "GET";
request.open(method,url);
request.send(null);
request.onreadystatechange = function(){
if(request.readyState==4){
if(request.status==200 ||request.status==304)
document.getElementById("content").innerHTML = request.responseText;
}
}
return false;
}
}
</script>
按钮:<a id="us" href="ajaxpage/userspace.php?username=<?php echo $username?>" >用户中心</a>
放置ajax页面的层:
<div id="content">
</div>
ajax页面:
<div id="test">
<script language='javascript'>
alert(“hello world!”);
</script>
</div>
为什么我点按钮之后 不会有alert?
你的ajax执行正确没 js是否有错误等
ajax成功后只是将返回的文本值以html的形式展示到id为content的div里,,怎么会执行js
首先,你这个js写的就有问题,request.send()应该放在事件监听后面,不然你都发送出去了还监听什么?而且你获取的内容是一段js代码,是不会立马运行的需要你用eval(str)对其进行执行。
浏览器的兼容性问题,你换一个new的对象,顺便捕捉异常
document.getElementById("content").innerHTML = request.responseText;
设置容器innerHTML里面包含的script代码不会执行,需要自己分析script标签获取里面的内容进行eval执行。或者用jquery来设置,jquery会自动帮你分析script代码并执行
你的括号和引号是正确的吗?需要是英文的。
如果都是正确的,alert是能执行的。