使FireFox支持outerHTML(转)

    解决这个问题,是从这位朋友的博客中找到的办法:http://www.cnblogs.com/doll-net/archive/2007/06/17/786835.html

    在使用outerHTML的js文件(或脚本块)中,添加一段DOM原型扩展方法:

     if(typeof(HTMLElement)!="undefined" && !window.opera)   
     {   
         HTMLElement.prototype.__defineGetter__("outerHTML",function()   
         {   
             var a=this.attributes, str="<"+this.tagName, i=0;for(;i<a.length;i++)   
             if(a[i].specified)   
                 str+=" "+a[i].name+'="'+a[i].value+'"';   
             if(!this.canHaveChildren)   
                 return str+" />";   
             return str+">"+this.innerHTML+"</"+this.tagName+">";   
         });   
         HTMLElement.prototype.__defineSetter__("outerHTML",function(s)   
         {   
             var r = this.ownerDocument.createRange();   
             r.setStartBefore(this);   
             var df = r.createContextualFragment(s);   
             this.parentNode.replaceChild(df, this);   
             return s;   
         });   
         HTMLElement.prototype.__defineGetter__("canHaveChildren",function()   
         {   
             return !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());   
         });   
     }   
    

    然后,就可以正常使用outerHTML对象了。

    posted @ 2010-07-14 11:17  Tony.wang  阅读(350)  评论(0编辑  收藏  举报