Bem, supondo que você esteja realmente interessado em aprender JavaScript, a melhor prática é a seguinte: prefira testar pela ausência / existência de métodos e escreva funções de normalização. Um exemplo totalmente manco, mas atinge três princípios:
if(!document.getElementsByClassName){
document.getByClass = function(){ //look at all elements, check for class etc...
}
else { document.getByClass = document.getElementsByClassName }
- Não cheire o navegador.
- Você também pode eliminar um pouco da sujeira do DOM à medida que avança. O objetivo da API do DOM é ser explícito, para não ficar mais fácil no seu túnel do carpo, se você não perceber como a JS é estranhamente flexível. O fator que quase não elimina é o que torna o exemplo coxo.
- Cache para uma nova função. Não faça o teste do método toda vez que for chamado.
A vantagem é que você nunca pode confiar 100% no farejamento do navegador e nunca sabe quando alguma outra biblioteca conectada na verdade não adicionou um método equivalente para você.
Se você está apenas tentando fazer as coisas ou quer aprender mais, recomendo o JQuery. Ele faz um trabalho estrondoso de eliminar o problema da API do DOM e manter um alto nível de normalização de plataforma cruzada, mas também é algo que você pode aprender bastante estudando sob o capô. Mais importante, se você se incomodar em continuar aprendendo realmente o JS principal, ele não se tornará inútil como muitas outras estruturas e bibliotecas JS e você continuará se beneficiando por poder desapossar seu lixo do JQuery com sua louca OOP-ish Habilidades.
Além disso, confira o site quirksmode.org para entender por que a Microsoft deve ser realmente desprezada por todos os IEs anteriores ao 9 na frente do JS e muitos detalhes detalhados sobre exatamente o que há de errado com sua API DOM proprietária e sugestões para contornar isso.