IE 不兼容的几个js问题及解决方法

时间:2023-03-08 16:12:37
IE 不兼容的几个js问题及解决方法
IE 不兼容的几个js问题及解决方法

1 Table的问题 
  在动态新增tr或者td时,createElecment() 一般用appendChild();都不生效,解决办法是用新增tbody, 如 
  var table=document.createElement("table"); 
var tbodoy=document.createElement("tbody"); 
var tr=document.createElement("tr"); 
var td=document.createElement("td"); 
table.appendChild(tbody.appendChild(tr.appendChild(td))); 
  
2  innerHTML的问题 
  在IE中不支持动态的写table的innerHTML,但是支持div或者span的innerHTML动态读写。 
3  设置样式问题 
    内联样式: 如果使用obj.setAttribute("stylename");stylename对应的样式不会生效。解决方法:obj.style.cssText="stylename"; 
    外部样式: obj.setAttribute("class":"className"); calssName对应的外部样式照样不会生效。解决方法:ojb.setAttribute("className","className"); 
    在此提醒一下,在使用一些dojo等框架时,如果遇到有设置class时,如 
dojo.create("div",{"class":"style1"},parent,"last")中class一定要用引号。 
4 设置属于元素的事件 
    对于一个文本obj,IE不支持obj.setAttribute("onclick","fun()"),设置它的onclick属性做法如下:obj.onclick=function(){},注意的是:此处需要放一个匿名的函数. 
5 动态创建单选按钮 
  用create和setAttribute()是解决不了问题的。解决方法是: 
  直接document.createElement("<input type='radio' name='myradio'></input>");来的更痛快一些。

6 最后就是用document判断浏览器是否为ie的一个方法,document.uniqueID, 因为只有ie唯一能识别uniqueID。