广嵌科技  广嵌教育  English  
 
首页 > 软件开发 > JAVA > Firefox浏览器兼容Javascript脚本的方法
Firefox浏览器兼容Javascript脚本的方法
来源:赛迪网  作者:sixth 时间:2008-07-02 发布人:华女

  遇到了FireFox和IE脚本不兼容的问题

  1.window.event兼容脚本

 

 

function getEvent(){ //获取浏览器事件,同时兼容ie和ff的写法
            if(document.all) return window.event;
            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都需要用getEvent()获取一下,否则就是空

  2.屏蔽Form提交事件
 

 

 

event.returnValue=false;// for IE
            evt.preventDefault();//for firefox
  3.获取事件源
 

 

 

var source=event.srcElement //IE
            var source=event.target //firefox
  4.添加事件兼容写法
 
function addEvent(oElement,sEvent,func){
            if (oElement.attachEvent){
            oElement.attachEvent(sEvent,func);
            }
            else{
            sEvent=sEvent.substring(2,sEvent.length);
            oElement.addEventListener(sEvent,func,false);
            }
            }
  用法:addEvent(window,"onload",Start);

  5.Firefox注册innerText写法
 

 

 

//注册firefox innerText
            HTMLElement.prototype.__defineGetter__("innerText",
            function(){
            var anyString = "";
            var childS = this.childNodes;
            for(var i=0; i if(childS[i].nodeType==1)
            anyString += childS[i].tagName=="BR" ? '\n' : childS[i].innerText;
            else if(childS[i].nodeType==3)
            anyString += childS[i].nodeValue;
            }
            return anyString;
            }
            );
            HTMLElement.prototype.__defineSetter__("innerText",
            function(sText){
            this.textContent=sText;
            }
            );
  6.长度:FireFox长度必须加“px”,IE无所谓

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

  8.XmlHttp

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






·上一条:离子迁移谱仪嵌入式系统的设计
·下一条:使用Java程序连接各种数据库的方法介绍

评论
发布者 标题 发布日期
暂没有任何评论
以下发言只是广嵌网会员个人意见,非本网立场 查看更多评论

发表评论
·尊重网上道德,遵守中华人民共和国的各项有关法律法规。
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任。
·本站管理人员有权保留或删除其管辖留言中的任意内容,本站有权在网站内转载或引用您的评论。
·参与本评论即表明您已经阅读并接受上述条款。
标题:
发布者:
内容:
验证码:

相关信息
·J2SE综合:深入了解J..
·通过java动态创建OD..
·教你用Java代码实现W..
·使用Java程序连接各种..
·J2EE综合--总结在j..
·开源框架Hibernat..
·Java课堂:初学者都必..
·一个优秀Java程序员必..
·JAVA和.NET两个平..
·教你如何妙用EditPl..
Copyright ©2005-2007 广东省嵌入式软件公共技术中心.All Rights Reserved.版权所有 复制必究
客户服务支持:020-32068395-832 24小时服务热线:13631411558
技术支持与报障:gdesc@midea.com.cn 020-32068395-807/809
粤ICP备05104135号