Outro dia eu estava tentando criar um elemento numa página que com um click ele disponibilizasse num elemento html logo abaixo os dados coletados de uma consulta SQL. Só que mais uma vez lá vem o IE estragar tudo com o padrão deles que eu não sei porquê eles acham que é o correto e o resto do mundo é errado.
O IE não deixa você disponibilizar um innerHTML em um elemento já criado dentro da HTML, por alguma razão eu não estava conseguindo. Até que pesquisando através do nosso amigo google eu encontrei uma solução em um blog que infelizmente não to lembrando aqui pra referênciar mas o importante é dizer que a idéia é boa e não é minha. Eis o código:
1: function updatePage(){
2: ...
3: if(request.readyState == 4){
4: clearText(resultEl);
5: if(request.status == 200){
6: //var txtEl = request.responseText;
7: var auxdiv = document.createElement("div");
8: auxdiv.innerHTML = request.responseText;
9: resultEl.appendChild(auxdiv);
10: }
11: }
12: }
Ou seja, para resolver o problema no IE e fazer com que o código funcione nos outros browsers (Firefox e Chrome testados). A solução simples foi criar um elemeno div auxiliar e colocar o innerHTM contendo a resposta do servidor dentro dele. O resultado para o meu código pode ser visto nesse link na parte Atos e Decretos. Qualquer sugestão ou crítica ou pergunta, comentários abertos! Abraços.



