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; } }
Powered by: newtelligence dasBlog 1.9.7174.0
Disclaimer Le opinioni qui espresse sono streattamente e completamente personali.
© Copyright 2012, 2009 Stefano Beretta
E-mail