35 lines
No EOL
1.2 KiB
JavaScript
35 lines
No EOL
1.2 KiB
JavaScript
// http://learn.javascript.ru/files/tutorial/browser/dom/insertAdjacentFF.js
|
|
// Добавляет поддержку insertAdjacent* в Firefox
|
|
|
|
if (typeof HTMLElement != "undefined" && !HTMLElement.prototype.insertAdjacentElement) {
|
|
HTMLElement.prototype.insertAdjacentElement = function(where, parsedNode) {
|
|
switch (where) {
|
|
case 'beforeBegin':
|
|
this.parentNode.insertBefore(parsedNode, this)
|
|
break;
|
|
case 'afterBegin':
|
|
this.insertBefore(parsedNode, this.firstChild);
|
|
break;
|
|
case 'beforeEnd':
|
|
this.appendChild(parsedNode);
|
|
break;
|
|
case 'afterEnd':
|
|
if (this.nextSibling) this.parentNode.insertBefore(parsedNode, this.nextSibling);
|
|
else this.parentNode.appendChild(parsedNode);
|
|
break;
|
|
}
|
|
}
|
|
|
|
HTMLElement.prototype.insertAdjacentHTML = function(where, htmlStr) {
|
|
var r = this.ownerDocument.createRange();
|
|
r.setStartBefore(this);
|
|
var parsedHTML = r.createContextualFragment(htmlStr);
|
|
this.insertAdjacentElement(where, parsedHTML)
|
|
}
|
|
|
|
|
|
HTMLElement.prototype.insertAdjacentText = function(where, txtStr) {
|
|
var parsedText = document.createTextNode(txtStr)
|
|
this.insertAdjacentElement(where, parsedText)
|
|
}
|
|
} |