我们的AJAX框架的工作方式是发回可能包含标记的HTML片段。然后,我们采用该HTML代码段并将其设置为元素的innerHTML。在IE 6/7中,它似乎忽略了标签,因此返回的HTML样式不正确。
我想知道其他人是否也遇到过类似的问题,如果是这样,他们是如何处理的。我知道我可以使用javascript库(我们使用YUI)动态获取外部样式表,因此可以将其转换为外部样式表。只是想知道是否还有其他方法可以解决此问题。
最佳答案
当然,最好的方法是纯DOM解决方案,即使用document.createElement
生成服务器返回的所有元素。
但是,(当然)有一个IE hack可以解决innertHTML
提出的一些问题。与其直接将响应粘贴到DOM中,不如创建一个元素,附加其innerHTML
,然后将其附加到DOM。
function responseHandler(response) {
var div = document.createElement('div');
div.innertHTML = response.responseText
document.getElementById('ZE_ELEMENT').appendChild(div);
}