JS中浏览器兼容性知识

来源:互联网 发布:软件质量 计划 编辑:程序博客网 时间:2024/05/05 10:00

参考:zisetoufa的博客,参考网址为:http://zisetoufa.iteye.com/blog/1833965

1 innerText   IE(其他浏览器也支持)支持,火狐不支持

解决办法:用innerHTML,他们都支持。或者可以通过分别支持。火狐支持textContent。

可以通过 (typeof element.textContent =="string") ? element.textContent : element.innerText;

2  document.createElement("xx");IE和火狐均支持

  插入行时,火狐支持,IE不支持。

解决办法:把行插入到tbody中,不要直接插入到表

3  setAttribute('style','color:red;')

   火狐(其他浏览器也支持)支持,IE不支持

解决办法:不用setAttribute("style",'color:red');用object.style.cssText="color.red";该方法也有例外,所以,都用上

4 setAttribute('class','styleClass')

FIREFOX 支持,IE不支持(指定属性名为CLASS,IE不会设置元素的CLASS属性,相反只使用SETATTRIBUTE时IE自动识别CLASSNAME属性)
解决办法:
setAttribute('className','styleClass'),2中方法都用上即可解决兼容性

5 用setAttribute设置事件

var obj = document.getElementByIdx_x('objId');
obj.setAttribute('onclick','funcitonname();');

FIREFOX 支持,IE不支持

解决办法:
IE中必须用点记法来引用所需的事件处理程序,并且要用赋予匿名函数
如下:
var obj = document.getElementByIdx_x('objId');
obj.onclick=function(){fucntionname();};

这种方法所有浏览器都支持


其他的:

建立单选钮
IE以外的浏览器
var rdo = document.createElement_x('input');
rdo.setAttribute('type','radio');
rdo.setAttribute('name','radiobtn');
rdo.setAttribute('value','checked');
IE:
var rdo =document.createElement_x("<input type='radio' name='radiobtn' value='checked'>");
解决办法:
这一点区别和前面的都不一样。这次完全不同,所以找不到共同的办法来解决,那么只有IF-ELSE了
万幸的是,IE可以识别出document的uniqueID属性,别的浏览器都不可以识别出这一属性。问题解决。
0:共同的一些技巧
在动态建立INPUT型输入元素时,一般是先加入,在设置TYPE。这就有可能出错
好习惯:var btn = document.createElement_x('input');
btn.setAttribut('type','button');
document.getElementByIdx_x('formId').appendChild(btn);



1 0
原创粉丝点击