兼容firefox和ie的javascript的一些写法

有很多人遇到这样的问题,干脆把我的收藏共享出来算了:
推荐flapjax用用。。。。相关链接
[url]http://blackanger.blog.51cto.com/blog/140924/22646[/url]
 
以下是转载的正文:

兼容firefox和ie的javascript的一些写法

最近我想让我们的CMS能在firefox中使用,于是以前所写的javascript代码就都需要考虑兼容问题了,无端增加了好多工作量。
 
下面是兼容firefox和ie时需要注意的一些写法
 
一,事件处理
在ie中处理事件直接使用window.event对象即可,但在firefox中,是没有window.event对象的,函数需要使用事件的时候,需要在事件发生时把事件作为参数传递给函数,不象在ie中,事件对象是全局的,随处都可以访问。下面这个getEvent()函数可以兼容firefox和ie,只需要在访问事件对象的函数的开始调用getEvent()即可,不用再把事件作为参数传递。
function myfunc()
{
     var evt=getEvent();
     var element=evt.srcElement || evt.target;
}
 
function getEvent()
{
 if(document.all)    return window.event;//如果是ie
 func=getEvent.caller;
        while(func!=null){
            var arg0=func.arguments[0];
            if(arg0){if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){return arg0;}            }
            func=func.caller;
        }
       return null;
}
在firefox和ie中event对象还是有些差别的,比如ie中event.srcElement,在firefox中就是event.target,具体可参考:
[url]http://www.javascriptkit.com/domref/domevent.shtml[/url]
 
二,访问frame或iframe对象
在ie中可以通过frame的id或name来访问,但在firefox中只能用frame的name来访问.
 
三,自定义属性
在ie中自定义属性可以直接访问,但在firefox中需要使用getAttribute()
比如
<td id="name" tel="1234"></td>
ie中:alert(name.tel);
firefox中:alert(name.getAttribute("tel"));
 
四,innerText和textContent
ie中的innerText在firefox中对应的是textContent
例如
if(document.all){
     document.getElementById('element').innerText = "my text";
} else{
    document.getElementById('element').textContent = "my text";
}
 
其他参考
[url]http://developer.mozilla.org/en/docs/Gecko_DOM_Reference[/url]
[url]http://www.javascriptkit.com/javatutors/dom.shtml[/url]
[url]http://www-128.ibm.com/developerworks/web/library/wa-ie2mozgd/[/url]
[url]http://www.firefox.net.cn/newforum/viewtopic.php?t=17017[/url]
 
FireFox中的DOM参考手册: [url]http://www.mozilla.org/docs/dom/domref/dom_shortTOC.html[/url]
IE中的DOM参考手册: [url]http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp?frame=true[/url]

你可能感兴趣的:(JavaScript,职场,兼容性,休闲)