Javascript insertAdjacentElement, insertAdjacentHTML, insertAdjacentText Cross Browser Compatibility.
Scritto il 17-02-2009 da Vito Antonio Bonardi
Pubblicato su : Programming
4
Chi come me sviluppa software per il web, quotidianamente si trova ad affrontare problemi di compatibilità tra i vari browser.
Il problema che ho riscontrato in questi giorni, riguarda la funzione insertAdjacentHTML, metodo non standard di casa Microsoft (non è presente in ECMAscript).
Dopo una breve ricerca su google (santo google), ho trovato questa faq, che risolve il problema.
Ecco la soluzione:
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)
}
}
function getObjInnerText(obj){
if (document.all)
{ // IE;
return obj.innerText;
}
else{
if (obj.textContent){
return obj.textContent;
}
}







usare jquery??
In effetti JQuery era un’altra possibilità!
Ma questa soluzione che hai fornito dove va inserita??
Nella pagina in cui ti serve? Boh, non ho ben capito la tua domanda …