惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
SegmentFault 最新的问题
博客园 - 三生石上(FineUI控件)
Hugging Face - Blog
Hugging Face - Blog
博客园 - Franky
云风的 BLOG
云风的 BLOG
I
InfoQ
小众软件
小众软件
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
雷峰网
雷峰网
P
Proofpoint News Feed
腾讯CDC
H
Help Net Security
V
Visual Studio Blog
美团技术团队
F
Fortinet All Blogs
MongoDB | Blog
MongoDB | Blog
阮一峰的网络日志
阮一峰的网络日志

博客园 - ylm㊣

C#线程类Thread初步 div+css构建模板技巧收藏 CrystalReport建立步骤 C# 2.0 命令行编译器 javascript (收藏代码) - ylm㊣ - 博客园 javascript 技巧(转) JS菜单大全 JS弹出窗口 FRAMESET 委托的例子 每个开发人员现在应该下载的十种必备工具 C# vb.net 语法比较 C#函数集 SQl语句学习专题(转) 數据庫物理設計經驗談 数据库设计经验谈(转) SQL模糊查询 正则表达式详解 关于23种设计模式的有趣见解(转)
给firefox添加ie方法和属性
ylm㊣ · 2006-12-12 · via 博客园 - ylm㊣

<!--
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>
?> 
http://blog.csdn.net/city22

posted on 2006-12-12 17:11  ylm㊣  阅读(458)  评论()    收藏  举报