gibney.org
:
Technology
:
Javascript
:
Repository
:
OuterHTML
(Entry Nr. 435, by user 1 |
edit
)
//outerHTML-------------------------------------------------------------------------------------------- if(!document.all) { HTMLElement.prototype.outerHTML setter = function(html) { var newRange = this.ownerDocument.createRange(); newRange.setStartBefore(this); var smallBit = newRange.createContextualFragment(html); this.parentNode.replaceChild(smallBit, this); return html; }; HTMLElement.prototype.outerHTML getter = function() { return HTMLElement_GetOuterHTML(this); }; function HTMLElement_GetOuterHTML(node) { var elementTags = ""; var selfClosing = ["IMG", "HR", "BR", "INPUT"]; switch(node.nodeType) { case Node.ELEMENT_NODE: elementTags += "<" + node.nodeName; // get the element's attributes... for(var i = 0; i < node.attributes.length; i++) { if(node.attributes.item(i).nodeValue != null) { elementTags += " "; elementTags += node.attributes.item(i).nodeName + "=\""; elementTags += node.attributes.item(i).nodeValue + "\""; } } if(node.childNodes.length == 0 && selfClosing.getIndexOf(node.nodeName) > 0) { elementTags += ">"; } else { elementTags += ">"; elementTags += node.innerHTML; elementTags += "</" + node.nodeName + ">" } break; case Node.TEXT_NODE: elementTags += node.nodeValue; break; case Node.CDATA_SECTION_NODE: elementTags += "<![CDATA[" + node.nodeValue + "]]>"; break; case Node.ENTITY_REFERENCE_NODE: elementTags += "&" + node.nodeName + ";" break; case Node.COMMENT_NODE: elementTags += "<!"+ "--" + node.nodeValue + "-->" break; } return elementTags; } Array.prototype.getIndexOf = function() { var num = -1; if(arguments.length > 0) { for(var i = 0; i < this.length; i++) { if(this[i] == arguments[0]) { num = i; break; } } } return num; }; }
Create a new entry at this position