1.

<script language="JavaScript" type="Text/JavaScript"> 
<!-- 
if(window.Event){// 修正Event的DOM 
    /**//* 
                                IE5        MacIE5        Mozilla        Konqueror2.2        Opera5 
    event                        yes        yes            yes            yes                    yes 
    event.returnValue            yes        yes            no            no                    no 
    event.cancelBubble            yes        yes            no            no                    no 
    event.srcElement            yes        yes            no            no                    no 
    event.fromElement            yes        yes            no            no                    no 
     
    */ 
    Event.prototype.__defineSetter__("returnValue",function(b){//  
        if(!b)this.preventDefault(); 
        return b; 
        }); 
    Event.prototype.__defineSetter__("cancelBubble",function(b){// 设置或者检索当前事件句柄的层次冒泡 
        if(b)this.stopPropagation(); 
        return b; 
        }); 
    Event.prototype.__defineGetter__("srcElement",function()
        var node=this.target; 
        while(node.nodeType!=1)node=node.parentNode; 
        return node; 
        }); 
    Event.prototype.__defineGetter__("fromElement",function(){// 返回鼠标移出的源节点 
        var node; 
        if(this.type=="mouseover") 
            node=this.relatedTarget; 
        else if(this.type=="mouseout") 
            node=this.target; 
        if(!node)return; 
        while(node.nodeType!=1)node=node.parentNode; 
        return node; 
        }); 
    Event.prototype.__defineGetter__("toElement",function(){// 返回鼠标移入的源节点 
        var node; 
        if(this.type=="mouseout") 
            node=this.relatedTarget; 
        else if(this.type=="mouseover") 
            node=this.target; 
        if(!node)return; 
        while(node.nodeType!=1)node=node.parentNode; 
        return node; 
        }); 
    Event.prototype.__defineGetter__("offsetX",function()
        return this.layerX; 
        }); 
    Event.prototype.__defineGetter__("offsetY",function()
        return this.layerY; 
        }); 
    } 
if(window.Document){// 修正Document的DOM 
    /**//* 
                                IE5        MacIE5        Mozilla        Konqueror2.2        Opera5 
    document.documentElement    yes        yes            yes            yes                    no 
    document.activeElement        yes        null        no            no                    no 
     
    */ 
    } 
if(window.Node){// 修正Node的DOM 
    /**//* 
                                IE5        MacIE5        Mozilla        Konqueror2.2        Opera5 
    Node.contains                yes        yes            no            no                    yes 
    Node.replaceNode            yes        no            no            no                    no 
    Node.removeNode                yes        no            no            no                    no 
    Node.children                yes        yes            no            no                    no 
    Node.hasChildNodes            yes        yes            yes            yes                    no 
    Node.childNodes                yes        yes            yes            yes                    no 
    Node.swapNode                yes        no            no            no                    no 
    Node.currentStyle            yes        yes            no            no                    no 
     
    */ 
    Node.prototype.replaceNode=function(Node){// 替换指定节点 
        this.parentNode.replaceChild(Node,this); 
        } 
    Node.prototype.removeNode=function(removeChildren){// 删除指定节点 
        if(removeChildren) 
            return this.parentNode.removeChild(this); 
        else
            var range=document.createRange(); 
            range.selectNodeContents(this); 
            return this.parentNode.replaceChild(range.extractContents(),this); 
            } 
        } 
    Node.prototype.swapNode=function(Node){// 交换节点 
        var nextSibling=this.nextSibling; 
        var parentNode=this.parentNode; 
        node.parentNode.replaceChild(this,Node); 
        parentNode.insertBefore(node,nextSibling); 
        } 
    } 
if(window.HTMLElement)
    HTMLElement.prototype.__defineGetter__("all",function()
        var a=this.getElementsByTagName("*"); 
        var node=this; 
        a.tags=function(sTagName)
            return node.getElementsByTagName(sTagName); 
            } 
        return a; 
        }); 
    HTMLElement.prototype.__defineGetter__("parentElement",function()
        if(this.parentNode==this.ownerDocument)return null; 
        return this.parentNode; 
        }); 
    HTMLElement.prototype.__defineGetter__("children",function()
        var tmp=[]; 
        var j=0; 
        var n; 
        for(var i=0;i<this.childNodes.length;i++)
            n=this.childNodes[i]; 
            if(n.nodeType==1)
                tmp[j++]=n; 
                if(n.name)
                    if(!tmp[n.name]) 
                        tmp[n.name]=[]; 
                    tmp[n.name][tmp[n.name].length]=n; 
                    } 
                if(n.id) 
                    tmp[n.id]=n; 
                } 
            } 
        return tmp; 
        }); 
    HTMLElement.prototype.__defineGetter__("currentStyle", function()
        return this.ownerDocument.defaultView.getComputedStyle(this,null); 
        }); 
    HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML)
        var r=this.ownerDocument.createRange(); 
        r.setStartBefore(this); 
        var df=r.createContextualFragment(sHTML); 
        this.parentNode.replaceChild(df,this); 
        return sHTML; 
        }); 
    HTMLElement.prototype.__defineGetter__("outerHTML",function()
        var attr; 
        var attrs=this.attributes; 
        var str="<"+this.tagName; 
        for(var i=0;i<attrs.length;i++)
            attr=attrs[i]; 
            if(attr.specified) 
                str+=" "+attr.name+’="’+attr.value+’"’; 
            } 
        if(!this.canHaveChildren) 
            return str+">"; 
        return str+">"+this.innerHTML+"</"+this.tagName+">"; 
        }); 
    HTMLElement.prototype.__defineGetter__("canHaveChildren",function()
        switch(this.tagName.toLowerCase())
            case "area": 
            case "base": 
            case "basefont": 
            case "col": 
            case "frame": 
            case "hr": 
            case "img": 
            case "br": 
            case "input": 
            case "isindex": 
            case "link": 
            case "meta": 
            case "param": 
                return false; 
            } 
        return true; 
        }); 

    HTMLElement.prototype.__defineSetter__("innerText",function(sText)
        var parsedText=document.createTextNode(sText); 
        this.innerHTML=parsedText; 
        return parsedText; 
        }); 
    HTMLElement.prototype.__defineGetter__("innerText",function()
        var r=this.ownerDocument.createRange(); 
        r.selectNodeContents(this); 
        return r.toString(); 
        }); 
    HTMLElement.prototype.__defineSetter__("outerText",function(sText)
        var parsedText=document.createTextNode(sText); 
        this.outerHTML=parsedText; 
        return parsedText; 
        }); 
    HTMLElement.prototype.__defineGetter__("outerText",function()
        var r=this.ownerDocument.createRange(); 
        r.selectNodeContents(this); 
        return r.toString(); 
        }); 
    HTMLElement.prototype.attachEvent=function(sType,fHandler)
        var shortTypeName=sType.replace(/on/,""); 
        fHandler._ieEmuEventHandler=function(e)
            window.event=e; 
            return fHandler(); 
            } 
        this.addEventListener(shortTypeName,fHandler._ieEmuEventHandler,false); 
        } 
    HTMLElement.prototype.detachEvent=function(sType,fHandler)
        var shortTypeName=sType.replace(/on/,""); 
        if(typeof(fHandler._ieEmuEventHandler)=="function") 
            this.removeEventListener(shortTypeName,fHandler._ieEmuEventHandler,false); 
        else 
            this.removeEventListener(shortTypeName,fHandler,true); 
        } 
    HTMLElement.prototype.contains=function(Node){// 是否包含某节点 
        do if(Node==this)return true; 
        while(Node=Node.parentNode); 
        return false; 
        } 
    HTMLElement.prototype.insertAdjacentElement=function(where,parsedNode)
        switch(where)
            case "beforeBegin": 
                this.parentNode.insertBefore(parsedNode,this); 
                break; 
            case "afterBegin": 
                this.insertBefore(parsedNode,this.firstChild); 
                break; 
            case "beforeEnd": 
                this.appendChild(parsedNode); 
                break; 
            case "afterEnd": 
                if(this.nextSibling) 
                    this.parentNode.insertBefore(parsedNode,this.nextSibling); 
                else 
                    this.parentNode.appendChild(parsedNode); 
                break; 
            } 
        } 
    HTMLElement.prototype.insertAdjacentHTML=function(where,htmlStr)
        var r=this.ownerDocument.createRange(); 
        r.setStartBefore(this); 
        var parsedHTML=r.createContextualFragment(htmlStr); 
        this.insertAdjacentElement(where,parsedHTML); 
        } 
    HTMLElement.prototype.insertAdjacentText=function(where,txtStr)
        var parsedText=document.createTextNode(txtStr); 
        this.insertAdjacentElement(where,parsedText); 
        } 
    HTMLElement.prototype.attachEvent=function(sType,fHandler)
        var shortTypeName=sType.replace(/on/,""); 
        fHandler._ieEmuEventHandler=function(e)
            window.event=e; 
            return fHandler(); 
            } 
        this.addEventListener(shortTypeName,fHandler._ieEmuEventHandler,false); 
        } 
    HTMLElement.prototype.detachEvent=function(sType,fHandler)
        var shortTypeName=sType.replace(/on/,""); 
        if(typeof(fHandler._ieEmuEventHandler)=="function") 
            this.removeEventListener(shortTypeName,fHandler._ieEmuEventHandler,false); 
        else 
            this.removeEventListener(shortTypeName,fHandler,true); 
        } 
    } 
//--> 
</script>

注:如FF下面没有mouseLeave事件.没有contains方法,以及click事件的处理与IE的不同等

转载于:https://www.cnblogs.com/solo/archive/2008/04/09/1144210.html

[ZT]firefox实现ie的方法和属性)相关推荐

  1. 火狐浏览器中文乱码怎么办 Firefox中文乱码解决方法

    核心提示:最近好多网友反映在使用火狐浏览器的时候,网页显示乱码的情况,这种问题通常是由于我们浏览器语言的设置有关系,下面小编就为大家分析下具体的解决办法,希望对大家有所帮助. 火狐浏览器中文乱码怎么办 ...

  2. DOM基础,classList属性提供的方法和属性,DOM中节点的操作,追加节点

    1. 什么是DOM: Document  Object Modei :文档对象模型  2.DOM核心:document对象 3.DOM作用: 可以访问和操作xtml和HTML文档中的标签,标签的属性, ...

  3. 技术图文:Python魔法方法之属性访问详解

    背景 今天在B站学习"零基础入门学习 Python"中的第45节"魔法方法:属性访问",这也是我们组织的 Python基础刻意练习活动 的学习任务,其中有这样的 ...

  4. 一个用户实体应该有它自己的实体验证,即一个实体应该有它的属性,方法,扩展属性及验证机制组成...

    一个存储验证信息的公用类: /// <summary>      /// 验证信息实体类      /// </summary>      public class RuleV ...

  5. python中文读音ndarray-numpy中的ndarray方法和属性详解

    NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推.在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量.比如说,二维数组相当于是一个一维数 ...

  6. JS-DOM Element方法和属性

    JS-DOM Element方法和属性 S-DOM Element方法和属性 一,获取html元素 1.getElementByID(id) 通过对元素的ID访问,这是DOM一个基础的访问页面元素的方 ...

  7. 自动装配——@Autowired 构造器,参数,方法,属性都是从容器中获取参数组件的值||自定义组件想要使用Spring容器底层的一些组件 ApplicationContext,BeanFactory

    @Autowired:构造器,参数,方法,属性:都是从容器中获取参数组件的值 * 1).[标注在方法位置]:@Bean+方法参数:参数从容器中获取;默认不写@Autowired效果是一样的:都能自动装 ...

  8. python 使用dir() help() 查看一个对象所有拥有的方法和属性

    可以使用python 的内置方法 dir() 或者help() 查看 某个对象所拥有的方法和属性, 二者间的区别是: dir() : 只是得到方法或者属性的名称 help():不但可以得到对象的方法和 ...

  9. Python 内置方法和属性应用:反射和单例

    1. 前言 python除了丰富的第三方库外,本身也提供了一些内在的方法和底层的一些属性,大家比较常用的如dict.list.set.min.max.range.sorted等.笔者最近在做项目框架时 ...

最新文章

  1. Ubuntu 16.04 安装 Docker - Dependency failed for Docker Application Container
  2. Gym 101334A Area 51 数学
  3. [转] NSMapTable 不只是一个能放weak指针的 NSDictionary
  4. 测试开发面试准备之Selenium 工作原理
  5. wechat.php+获取昵称,微信后台代码,获取用户昵称
  6. 批量生成zabbix screen xml file
  7. 9;XHTML 多媒体
  8. linux basename学习
  9. STM32 相关RTOS
  10. Firefox 插件 FlashGot 创建 Axel 下载任务
  11. 蓝芽技术的原理和应用(2)(转)
  12. STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁
  13. RAD Studio XE (DelphiXE)官网下载地址与注册
  14. css背景图片和背景颜色一起显示
  15. stm32f407zgt6与stm32f407vet6的通用io口差别
  16. git commit 命令详解
  17. Spring Cloud 入门教程(二): 配置管理
  18. 计算机基础知识图谱,基于知识图谱的大学计算机基础习题推荐方法技术
  19. 什么手机杀毒软件最好用?3款很棒的手机用杀毒软件推荐给你
  20. 西门子SCL读写DB数据

热门文章

  1. Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告
  2. 九、Spring中使用@Value和@PropertySource为属性赋值
  3. 菜鸟——首个页面——奇葩问题
  4. 定时任务之crond服务
  5. 局部内部类如何访问外部类方法中变量
  6. javascript的回调函数 同步 异步
  7. 自定义alert提示框
  8. 大型网站的数据库分割问题。
  9. 简单的选项卡功能实现
  10. css3和jQuery实现一个简单的标签页效果