Attenzione a IE8

Internet Explorer 8 ha sicuramente portato novita' e un aumento di prestazioni anche nel CRM.

Bisogna pero' fare attenzione perche' ha anche portato dei cambiamenti a livello di javascript non sempre graditi.
Uno di questi cambiamenti e' particolarmente subdolo ed e' mriassunto in una frase: LA PROPRIETA' innerHTML E' DI SOLA LETTURA
Tutti coloro che usano questa proprieta' per, ad esempio, iniettare proprio codice HTML nei form del CRM , ottengono come risuktato il nulla.
Il codice non viene iniettato, ma non si ottiene nemmeno un messaggio di errorre e quindi e' possibile che non ci accorga del problema.

Una possibile soluzione potrebbe essere quella di sostituire un inter nodo del DOM utilizzando le concatenazioni parent/child.
E' sicuramente una prospettiva piu' macchinosa nel senso che per sostituire ad esempio un nome e quindi una stringa di pochi caratteri, bisogna agire su un elemento del dom magari lungp dieci righe, ma almeno funziona.
Ecco un esempio di funzione adatta allo scopo:

function replace_html(el, html) {
if( el ) {
var oldEl = (typeof el === "string" ? document.getElementById(el) : el);
var newEl = document.createElement(oldEl.nodeName);

newEl.id = oldEl.id;
newEl.className = oldEl.className;

newEl.innerHTML = html;
if(oldEl.parentNode)
oldEl.parentNode.replaceChild(newEl, oldEl);
else
oldEl.innerHTML = html;

return newEl;
}
}

Dettagli...