7.1 - Histórico |
Outro grupo de objetos disponível em Javascript são os objetos do navegador. Estes objetos pertencem ao chamado Document Object Model (DOM), implementado por cada navegador.
Quando dizemos que o javascript é dependente do navegador, estamos nos referindo ao DOM. Este modelo de objetos evoluiu bastante desde o Netscape 2, o que na verdade, cria muitos problemas para os desenvolvedores pois você nunca sabe qual a versão do navegador está sendo utilizada pelo usuário que tenta visualizar seu site.
Historicamente, o Netscape, navegador que primeiro incorporou a linguagem Javascript, introduziu um modelo de objetos original que foi posteriormente chamado de DOM nível 0. Através dele era possível acesso a alguns elementos da página HTML. A Microsoft, entrando no mercado com o seu Internet Explorer, ofereceu no IE3 o mesmo modelo de objetos do Netscape 2, que apesar de nunca ter sido padronizada por um organismo como a W3C, acabou se tornando um padrão de fato.
As versões 4 do Internet Explorer e do Netscape trouxeram o DHTML (ou HTML dinâmico) que é uma técnica de fazer páginas dinâmicas através da utilização de scripts para manipular estilo, layout e conteúdo de um documento HTML, através da combinação dos recursos : HTML 4.0 (camadas) ; Folhas de estilo e programação com Javascript. Para viabilizar o DHTML, cada navegador (IE e NN) criou o seu DOM particular o que dificultou bastante o trabalho dos desenvolvedores. Com modelos de objetos diferentes era necessário produzir códigos bastante complexos de forma a garantir o seu funcionamento em todos os navegadores.
A W3C iniciou então um trabalho de padronização no sentido de gerar um modelo de objetos que fosse utilizado em todos os navegadores e que permitisse acesso a todos os elementos de uma página HTML. Este padrão foi chamado de DOM W3C ou DOM de nível 1. A Microsoft implementou o DOM de nível 1 a partir do IE5 enquanto a Netscape implementou-o a partir do Netscape 6. Embora se diga que hoje todos os navegadores implementam o nível 1, ainda existem incompatibilidades.
Como este é um curso introdutório de javascript, nos restringiremos aqui aos objetos do chamado DOM original (ou de nível 0).