问题描述
- 请问ajax中的javascript问题
-
我用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成功后只是将返回的文本值以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是否有错误等
解决方案五:
浏览器的兼容性问题,你换一个new的对象,顺便捕捉异常
解决方案六:
你的括号和引号是正确的吗?需要是英文的。
如果都是正确的,alert是能执行的。
时间: 2024-08-03 15:13:15