Javascript 从Internet Explorer中的AJAX响应中删除脚本标记

Javascript 从Internet Explorer中的AJAX响应中删除脚本标记,javascript,ajax,internet-explorer,innerhtml,script-tag,Javascript,Ajax,Internet Explorer,Innerhtml,Script Tag,在我们当前的项目中,一些代码是用AJAX返回的,我们使用innerHTML将这些代码放在一个DIV中 现在我们在这个DIV中搜索所有可用的脚本标记,并评估这些脚本标记的内容(向全局数组中添加一些信息,等等) 调试o.responseText显示响应内的脚本标记。导航到页面上的this.proxy元素时,IE中会显示no脚本标记,但Firefox/Chrome中会显示该标记。通过在反AJAX响应中的脚本标记之前添加额外的节点元素,问题得到了解决。(解决方案/原因:) 将来,我们应该更改我们的应用程

在我们当前的项目中,一些代码是用AJAX返回的,我们使用innerHTML将这些代码放在一个DIV中

现在我们在这个DIV中搜索所有可用的脚本标记,并评估这些脚本标记的内容(向全局数组中添加一些信息,等等)


调试o.responseText显示响应内的脚本标记。导航到页面上的this.proxy元素时,IE中会显示no脚本标记,但Firefox/Chrome中会显示该标记。

通过在反AJAX响应中的脚本标记之前添加额外的节点元素,问题得到了解决。(解决方案/原因:)


将来,我们应该更改我们的应用程序,以便HTML以JSON的形式发送回来。

目前仅在IE8中进行测试-出现这种行为/问题的地方。所以假设这也是IE7中的一个问题。我希望IE9能打得很好。但是目前只在Ubuntu上工作,因此没有真正的IE测试环境。检查一下,在M$about
innerHTML
上,你必须在脚本中添加“DEFER”属性。我也找到了这些,但并没有真正解决我们的问题。然而,我遇到了另一个来源:这里提供的解决方案和原因似乎适用于我们的情况。我们的第一个子节点是脚本标记。在它前面呈现一些东西会突然使它在IE中正常工作。“评估”远程获取的内容可能是个坏主意。(我并不是说这是造成这个问题的原因,只是一般来说这是不明智的。)+1我也遇到过这个问题,我现在用这个方法检查:)非常感谢链接到这篇文章,对我来说,“延迟”属性起了作用。
scriptTags = responseElement.getElementsByTagName("script");

for (i = 0; i < scriptTags.length; i++) {
            eval(scriptTags[i].text);
        }
this.proxy.innerHTML = o.responseText;
scriptTags = this.proxy.getElementsByTagName("script");