Pergunta

Após horas de depuração, parece-me que no FireFox, o innerHTML de um DOM reflete o que realmente está na marcação, mas no IE, o innerHTML reflete o que está na marcação MAIS quaisquer alterações feitas pelo usuário ou dinamicamente (ou seja,através de Javascript).

Alguém mais descobriu que isso é verdade?Alguma solução interessante para garantir que ambos se comportem da mesma maneira?

Foi útil?

Solução

Eu concordo com Pat.Neste ponto do jogo, escrever seu próprio código para lidar com a compatibilidade entre navegadores, dadas as estruturas Javascript disponíveis, não faz muito sentido.Existe uma estrutura para quase todos os gostos (algumas bem pequenas) e eles se concentraram em realmente abstrair todas as diferenças entre os navegadores.Eles estão fazendo MUITO mais testes do que você provavelmente faria.

Algo como jQuery ou YUI do Yahoo (pense em quantas pessoas acessaram o Yahoo Javascript em um dia e a variedade de navegadores) é muito mais testado do que qualquer trecho que você ou eu inventamos.

Outras dicas

Eu uso o jQuery .html() para obter um resultado consistente em todos os navegadores.

usar uma boa biblioteca é uma ótima maneira de contornar inconsistências do navegador, e jquery é o que eu normalmente recomendo - e se você estiver tendo problemas para alterar os elementos de um formulário em particular, o jquery possui alguns plug-ins realmente úteis focados especificamente na manipulação e avaliação de formulários.

Usar protótipo e a sintaxe $("thisid") em vez de document.getElementById("thisid") pode resolver o problema para você.Funcionou para mim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top