浏览器兼容——jquery的html()不兼容IE
在看着一个页面A,是一个弹出框,用的jquery中的ajax,然后弹出的内容是另一个Div的。而所出现的问题,是在浏览器中都有弹出框,但是只有谷歌和火狐中的弹出框中内容。
当时,我所想到的是另一个问题引起的,就是ajax不兼容IE,所以方向完全错了。
jQuery.ajax({ type:"get", // contentType: "application/json", url:"awardlist.do?timeStamp="+new Date().getTime(), cache:false, data:jQuery.param(obj,true), dataType: 'String', success:function(ret,txt){ $("<div class='loadmask'></div>").appendTo('body'); $("#award_div_box").removeClass('none').html(ret); }, error: function(xhr, textStatus, errorThrown) { alert("错误开始"); alert(xhr); alert(textStatus); alert(errorThrown); }})
后来经过调试当中,我用ajax的contentType: "application/json"和 dataType: 'json'。
然后就会事件就进入error,然后接下来就是弹出parseerror,相信大家都明白为什么,也一并将json数据弹出了,这样也就说明不是ajax的兼容性。
一步一步,就到success:function中,我使用 alert(txt);alert(ret);证明也进来了,txt和ret的数据也有,那就是最后一句代码有问题,
$("#award_div_box").removeClass('none').html(ret);
问题出现了、就是因为jquery中的html()不兼容IE.
因而,采用原生的js代替它。
document.getElementById("award_div_box").className = "award_box"; document.getElementById("award_div_box").innerHTML = ret;