请问ajax中的javascript问题 5C
 我用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?

6个回答

ajax成功后只是将返回的文本值以html的形式展示到id为content的div里,,怎么会执行js

首先,你这个js写的就有问题,request.send()应该放在事件监听后面,不然你都发送出去了还监听什么?而且你获取的内容是一段js代码,是不会立马运行的需要你用eval(str)对其进行执行。

document.getElementById("content").innerHTML = request.responseText;

设置容器innerHTML里面包含的script代码不会执行,需要自己分析script标签获取里面的内容进行eval执行。或者用jquery来设置,jquery会自动帮你分析script代码并执行

执行ajax动态返回的js代码块

你的ajax执行正确没 js是否有错误等

cai19951122
change丶 我的ajax执行正确了。我设置了样式边框来显示接收到的页面,是正确的,js的话只有一行alert 不应该有问题啊
大约 4 年之前 回复

浏览器的兼容性问题,你换一个new的对象,顺便捕捉异常

你的括号和引号是正确的吗?需要是英文的。

如果都是正确的,alert是能执行的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问