欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-17 20:20:36
...
一直以来,IE对于DOM操作有一些不和谐的地方,烂笔头又来了:
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。


以上为总结,待续。