OuterHTML implementation in Firefox

Here is a sample:

<html> <head> <title>FireFox OuterHTML Implementation</title> <mce:script type="text/javascript"><!-- 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()); }); } function getOuterHTML() { var o = document.getElementById("test"); alert(o.outerHTML); } // --></mce:script> </head> <body> <div id="test"><span>New test</span></div> <input type="button" value="Get OuterHTML" onclick="getOuterHTML();" /> </body> </html> 

你可能感兴趣的:(OuterHTML implementation in Firefox)