outerHTML与innerHTML
为了屏蔽IE与标准浏览器之间鸿沟,特别搞了这个,而且连XML也能用了。
if(!String.prototype.trim){
String.prototype.trim = function(str){
return this.replace(/^[\s\xa0]+|[\s\xa0]+$/g, '');
}
}
var metaObject = {
'\b': '\\b',
'\t': '\\t',
'\n': '\\n',
'\f': '\\f',
'\r': '\\r',
'\\': '\\\\'
}
if(!String.prototype.quote ){
String.prototype.quote = function () {
str = this.replace(/[\x00-\x1f\\]/g, function (chr) {
var special = metaObject[chr];
return special ? special : '\\u' + ('0000' + chr.charCodeAt(0).toString(16)).slice(-4)
});
return '"' + str.replace(/"/g, '\\"') + '"';
}
}
if(document.documentElement.__defineGetter__){
HTMLElement.prototype.__defineGetter__("currentStyle", function () {
return this.ownerDocument.defaultView.getComputedStyle(this, null);
});
}
var rselfClosing = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i;
var outerHTML = function(el,recursion){
switch(el.nodeType+""){
case "1":
var array = [];
var nodeName = el.nodeName;
if(recursion && el.currentStyle.display == "block"){
array.push("\n")
}
array.push("<"+nodeName);
for(var i=0,t;t=el.attributes[i++];){
array.push(" "+t.name+"="+(t.value||t.specified+"").quote())
}
if(rselfClosing.test(el.nodeName)){
array.push("\/>")
}else{
array.push(">");
for(var i=0,c;c=el.childNodes[i++];){
array.push(outerHTML(c,true))
}
array.push("<\/"+el.nodeName+">")
}
return array.join("");
case "3":
return el.nodeValue.trim();
case "8":
return "innerHTML" in el? el.innerHTML : "<!--"+el.nodeValue+"-->"
}
}
var innerHTML = function(el){
var array = [];
for(var i=0,c;c=el.childNodes[i++];){
array.push(outerHTML(c,true))
}
return array.join("");
}
机器瞎学/数据掩埋/模式混淆/人工智障/深度遗忘/神经掉线/计算机幻觉/专注单身二十五年
浙公网安备 33010602011771号