javascript中的setAttribute()浏览器的兼容性问题

作者:动易网络 来源:本站原创 点击数: 发布时间:2012年02月07日

在我们模板设计的过程中,不免有很多操作要用到js来实现。例如在鼠标点击超链接后,改变链接的样式,或者是为链接加上滑动门效果...这些效果的实现都是通过jsdocument.getElementByIdgetElementsByTagName 方法找到操作的html元素,然后为其设置setAttribute属性。如:Element.setAttribute("Style","display:none;");

但是当设置了setAttribute属性后,会产生在火狐上和IE8上可以正常显示效果,但是在IE7上却看不到任何变化。这样的原因是setAttribute属性在浏览器上存在兼容性问题。并不是说IE7不支持setAttribute这个函数,而是不支持用setAttribute设置某些样式属性,例如对象属性、集合属性、事件属性,也就是说用setAttribute设置styleonclick这些属性在IE7中是行不通的。

 

为达到兼容各种浏览器的效果,可以用点符号法来设置Element的属性。

例如前面提到的Element.setAttribute("Style","display:none;");

可以修改为    Element.style.display="none";

或通过cssText设置多个样式值:Element.style.cssText="display:none;border:red solid 1px"

以下是实例: 运用js隐藏“网站首页”链接

 


网站首页
文章中心
图片中心
视频中心
友情链接



 

setAttribute属性在为html标签添加class样式时也存在兼容性的问题。

setAttribute("class, value)这样在火狐中是可以实现的,但是在IE7上却存在问题,要使用

setAttribute("className", value),而className火狐上有不识别,所以在兼容处理时,要写上两条语句。

Element.setAttribute("class", value);

Element.setAttribute("className", value); //for IE7

或者单独使用

Element.className=value;

 

这样就很好的处理js中setAttribute的兼容性问题。