Se criarmos um formulário com uns campos de texto em uma página web poderemos observar que Internet Explorer não coloca o mesmo tamanho aos campos de texto que Netscape. Na verdade, os campos que coloca Netscape são de um tamanho maior para um mesmo atributo size no campo.
Geralmente se soluciona colocando os campos de texto menores para que caibam no desenho em Netscape, mas em algumas ocasiões queremos que os campos sejam do tamanho justo e que no Internet Explorer não sejam tão pequenos e no Netscape tão grandes. Isto pode acontecer, por exemplo, em desenhos calculados muito à medida.
Concretizando, o tamanho dos campos se aplica com o atributo size da etiqueta <INPUT> e queremos fazer com que o size indicado dependa do navegador que estivermos usando.
Distinguir os navegadores
Para isso deveremos criar um script de Javascript que distinga entre os dois navegadores e escrever mediante javascript o atributo size com um valor distinto para cada caso.
Distinguir dinamicamente entre os navegadores é uma tarefa que pode ser bastante complicada e digna de outro artigo, mas poderíamos fazer de uma maneira parecida a esta:
if (document.layers)
//faco coisas para Netscape 4
else
// faco coisas para outros navegadores
Com este código discrimino somente entre a versão 4 de Netscape e todos os demais navegadores. É porque Netscape 4 é o único navegador cuja hierarquia de objetos inclui um objeto denominado layers. Ao introduzir esse nome de objeto na expressão a avaliar do if, obteremos casos positivos se o objeto existe (Netscape4) e negativos se não existirem (os demais).
Escrever coisas distintas em cada caso
Agora vamos colocar o código Javascript que escreveria um campo de texto com um valor de size distinto para cada navegador.
if (document.layers)
document.write("<INPUT type=text size=12>")
else
document.write("<INPUT type=text size=16>")
Colocamos o script em um formulário
É bem simples, só nos resta colocar esse código dentro de um formulário e teremos um campo de texto com sizes distintos, mas com o mesmo tamanho na tela.
<FORM>
<script language="JavaScript">
if (document.layers)
document.write("<INPUT type=text size=12>")
else
document.write("<INPUT type=text size=16>")
</script>
</FORM>
Pode-se
ver este exemplo em uma página a parte.
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.