Firefox完全兼容Javascript脚本方法

开发 前端
在Web开发设计中,我们经常能遇到各种浏览器之间的兼容性问题,其中IE与Firefox之间是最常见的。文章介绍了在Firefox浏览器下完全Javascript脚本的几种方法。

在Web开发设计中,我们经常能遇到各种浏览器之间的兼容性问题,其中IE与Firefox之间是最常见的,比如在IE中,XmlHttp.send(content)方法的content可以为空,而firefox则不能为空,应该用send(" "),否则会出现411错误。下面就介绍了让Firefox全面兼容Javascript的几种方法,仅供参考。

51CTO推荐阅读:Javascript解决常见浏览器兼容问题

1.window.event兼容脚本

  1. function getEvent(){ //获取浏览器事件,同时兼容ie和ff的写法   
  2.       if(document.all) return window.event;   
  3.          func=getEvent.caller;   
  4.          while(func!=null){   
  5.          var arg0=func.arguments[0];   
  6.          if(arg0){   
  7.              if((arg0.constructor==Event    arg0.constructor ==MouseEvent)   
  8.                (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){   
  9.       return arg0;   
  10.                 }   
  11.          }   
  12.      funcfunc=func.caller;   
  13.      }   
  14.      return null;   
  15. }  

 

每次用事件之前Firefox都需要用getEvent()获取一下,否则就是空

2.屏蔽Form提交事件

  1. event.returnValue=false;// for IE   
  2. evt.preventDefault();//for firefox  

3.获取事件源

  1. var source=event.srcElement //IE   
  2. var source=event.target //firefox  

4.添加事件兼容写法

  1. function addEvent(oElement,sEvent,func){   
  2.     if (oElement.attachEvent){   
  3.        oElement.attachEvent(sEvent,func);   
  4.     }   
  5.     else{   
  6.        sEventsEvent=sEvent.substring(2,sEvent.length);   
  7.        oElement.addEventListener(sEvent,func,false);   
  8.     }   
  9. }  

 

用法:addEvent(window,"onload",Start);

5.Firefox注册innerText写法

  1. //注册firefox innerText   
  2. HTMLElement.prototype.__defineGetter__("innerText",   
  3.    function(){   
  4.       var anyString = "";   
  5.       var childS = this.childNodes;   
  6.    for(var i=0; i if(childS[i].nodeType==1)   
  7.       anyString += childS[i].tagName=="BR" ? '\n' : childS[i].innerText;   
  8.    else if(childS[i].nodeType==3)   
  9.       anyString += childS[i].nodeValue;   
  10.    }   
  11.    return anyString;   
  12. }   
  13. );   
  14. HTMLElement.prototype.__defineSetter__("innerText",   
  15.    function(sText){   
  16.    this.textContent=sText;   
  17. }   
  18. );  

6.长度:FireFox长度必须加“px”,IE无所谓

7.父控件下的子控件:IE是“children”,FireFox是“childNodes”

8.XmlHttp

在IE中,XmlHttp.send(content)方法的content可以为空,而firefox则不能为空,应该用send(" "),否则会出现411错误。

【编辑推荐】

  1. Javascript解决常见浏览器兼容问题
  2. JavaScript跨浏览器兼容测试三步走
  3. Javascript 获取页面高度(多种浏览器)
责任编辑:王晓东 来源: 华军软件园
相关推荐

2010-09-16 11:21:54

FirefoxJS

2010-09-15 09:21:11

IEirefoxJavascript

2010-08-23 09:23:48

IEFirefox兼容性

2010-08-20 13:22:21

IEFirefoxJavaScript

2010-10-08 15:00:08

FirefoxJavaScript兼

2014-06-16 10:20:46

Firefox OSWeb Apps

2010-08-18 15:22:28

IE6IE7Firefox

2010-08-20 12:45:41

IE6IE7Firefox

2009-03-28 09:43:19

Windows 7微软操作系统

2010-08-27 15:38:21

兼容IE6IE7

2010-08-31 09:24:29

FireFoxIECSS

2013-09-29 10:41:28

JavascriptJSFirefox 23

2009-09-15 08:46:14

Windows 7itunes兼容性

2010-08-18 15:57:14

IE6IE7IE8

2010-08-18 13:54:35

IE6IE7Firefox兼容

2010-08-16 15:15:12

CSSFireFoxIE

2009-06-10 21:55:39

打开JavaScripIEFirefox

2012-06-07 09:15:31

Windows 8兼容

2010-09-06 15:06:29

IE6IE7Firefox

2010-09-01 15:16:47

CSSIEFirefox
点赞
收藏

51CTO技术栈公众号