日期:2014-05-17 浏览次数:20691 次
FF下是不能认识outerHTML,因为outerHTML不是W3C的标准属性,网上使用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()); 
??? }); 
}