Teste 2 - Uso de função JavaScript para obter propriedades de objetos
Um arquivo JavaScript chamado findDOM.js é importado para o documento. Ele contém o código da função findDOM(), de dois argumentos. O primeiro argumento deve ser o ID de um objeto, e o segundo (booleano) deve indicar se o acesso refere-se diretamente aos estilos do objeto (1) ou ao seu conjunto de propriedades (0).
Uma vez chamada, esta função retorna todo o conjunto de estilos ou de propriedades. O recurso a seguir é utilizado para acessar os estilos da figura da Lindinha (objeto "object1"), para a seguir alterar as propriedades style.left e style.top.
Aperte o botão para mover a foto da Lindinha.
 
Eis as partes cruciais do código desta página:
<head>
<style type="text/css">
#object1 {position: relative; visibility: show; left:10px}
</style> <script type='text/javascript' src="../../js/findDOM.js"></script>
<script type='text/javascript'> function moveObject(objectID) {
domStyle = findDOM(objectID,1) // atribuição dos estilos de objectID à variável domStyle domStyle.left = 330+"px" // modificação do estilo left domStyle.top = -50+"px" // modificação do estilo top }
</script>
</head>
Atenção: A adição de +"px" na declaração dos novos valores de left e right é necessária devido ao Netscape e ao Firefox, que não reconhecem os números declarados sozinhos.
A seguir está o código do arquivo findDOM.js. A principal função do programa é detectar o tipo de browser do usuário, e qual a melhor forma de referenciar os objetos (que varia dependendo do browser). Isso tira do programador a necessidade de escrever diferentes e extensas linhas de código para cada browser.
var isDHTML = 0 // Presença de DOM
var isID = 0 // W3C DOM
var isAll = 0 // Internet Explorer All DOM
var isLayers = 0 // Netscape "Layer" DOM
function findDOM(objectID,withStyle) { /* Função para acessar os estilos do objeto objectID */
if (withStyle == 1) {
if (isID) {return (document.getElementById(objectID).style)}
else {
if (isAll) {return (document.all[objectID].style)}
else {
if (isLayers) {return (document.layers[objectID])}
}
}
}
/* Função para acessar outras propriedades do objeto objectID */
else {
if (isID) {return (document.getElementById(objectID))}
else {
if (isAll) {return (document.all[objectID])}
else {
if (isLayers) {return (document.layers[objectID])}
}
}
} }