JS中浏览器兼容性知识

参考: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.οnclick=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);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值