在xmlHttp.responseText中传递javascript

是否可以在xmlhttp.responsetext中执行JavaScript执行JavaScript 这是我在做的事情: search.js var xmlhttp xmlhttp = getxmlhttpobject() var url =" search.php" xmlhttp.onreadystatechange = statechanged xmlhttp.open(" get",url,true) xmlhttp.send(null) 功能statechanged() { if(xmlhttp.readystate == 4 || xmlhttp.readystate =="完成") { document.getElementById(" search").InnerHtml = XMlHtt P.ResponseText; } } 函数getxmlhttpobject() { var xmlhttp = null; 尝试 { // Firefox,Opera 8.0+,Safari xmlhttp = new XmlHttpRequest(); } 捕获(e) { // IE浏览器 尝试 { xmlhttp = new ActiveXObject(" MSXML2.XMLHTTP"); } 捕获(e) { xmlhttp = new ActiveXobject(" Microsoft.xmlhttp"); } } 返回XMLHTTP; search.php <脚本类型=" text/javascript"> 警报("嗨"); test.php

因此,当我浏览test.php是" hi"时,我会看到什么 浏览器,但我也希望执行JavaScript警报 如果我访问search.php,那么我将" hi"打印到浏览器和 警报消息 因此,似乎当我将响应传递到跨度时JavaScript 警报被忽略 (document.getElementById(" search").innerhtml = xmlht tp.responsetxt;) SP我的问题是如何通过并执行JavaScript? 谢谢!

# 回答1

11月5日,3:50 AM,TRP ...@gmail.com写道: //一种方法是手动查找所有新脚本标签并评估它们: var SearchElement = document.getElementById(" search"); searchElement.innerhtml = xmlhttp.ResponseText; var脚本= searchElement.getElementsbytagname('script'); for(var i = 0; i
# 回答2

11月4日,2:50*pm,trp ...@gmail.com写道: 是的. 响应XML更容易. 那是构造函数吗? 您的分号钥匙是否损坏了? 输掉第二个测试. 这是问题. 您可以将InnerHTML属性配置为 查看它是否会评估内联脚本,但是使用标准DOM评估IIRC 方法(例如,附录)完全避免了此问题. 或者,当您发送AJAX请求时,将标题包括在 向test.php脚本注明它应该将文档发送为 XHTML(用文本/XML作为MIME类型,IIRC),然后您可以导入 根据需要(即使在IE中)节点. 不是构造函数. 和IE7,但有点残废. 使用Try-Catch代替功能检测不是一个好策略. 以及上面失败的其他任何事情. 设置InnerHTML属性不会执行内联脚本 IE(以及其他代理,IIRC). 正如预期的. 当您设置Div的InnerHTML属性时. 正确的. [SNIP]

标签: Javascript

添加新评论