Firefox完全兼容Javascript脚本方法

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

推荐阅读: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错误。

网页标题:Firefox完全兼容Javascript脚本方法
文章源于:http://www.hantingmc.com/qtweb/news19/381169.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联