JavaScript sem mistérios para Mozilla/Netscape e Microsoft Internet Explorer

Publicado por Bruno Tayar em 05/07/2007

[ Hits: 8.858 ]

 


JavaScript sem mistérios para Mozilla/Netscape e Microsoft Internet Explorer



Vamos tratar do problema de scripts para formulários, onde deseja-se filtrar o que o usuário digita, permitindo somente números para um campo de identidade. O grande problema é que determinados scripts tem problemas com determinados browser. Então este tutorial visa compilar e mostrar um exemplo onde se resolve este problema de forma rápida e objetiva.

O problema em questão

Alguns programadores encontram problemas na hora de criar e executar scripts dependendo do browser. Na verdade, não se trata de uma incompatibilidade. Torna-se necessário apenas ajustar o script para que funcione corretamente, independentemente do browser.

Vamos tratar do problema de scripts para formulários, onde deseja-se filtrar o que o usuário digita, permitindo somente números para um campo de identidade.

A solução e o código fonte

Suponha que um script funcione no Microsoft Internet Explorer e nele seja utilizado keyCode. O keyCode tem a função de retornar o código ASCII da tecla pressionada. Pode ser utilizado num evento tipo onKeyPress por exemplo. Neste browser em questão, o script vai funcionar perfeitamente. Já no Mozilla/Netscape, em vez de utilizar keyCode, deve-se optar pelo which.

Seja o seguinte exemplo:

function checaNumero(x){
   var y=x.keyCode; // a variável y armazenará o código ASCII da tecla pressionada.
   if(y>=48 && y<=57 || y==8){
      return true; // Se o digitado for número ou backspace apenas, o script permite a tecla
   } else {
      return false; // Não foi um número, nem backspace.
   }
}

Este código funciona perfeitamente no Microsoft Internet Explorer. Para que funcione no Mozilla/Netscape, deve ser adaptado da seguinte forma:

function checaNumero(x){
   var y=x.which;
   if(y>=48 && y<=57 || y==8){
      return true;
   } else {
      return false;
   }
}

Mas então surge um novo problema. Como adivinhar em que browser o usuário usará o sistema? Usuários de Linux não possuem o Microsoft Internet Explorer, e muitas pessoas que usam Windows não usa Mozilla/Netscape. Como resolver esse problema? O melhor é criar um código inteligente que identifique qual o browser do usuário e ajuste o script automaticamente.

A solução é descrita abaixo:

function checaNumero(x){
   if(navigator.appName=='Microsoft Internet Explorer'){
      var y=x.keyCode;
      if(y>=48 && y<=57 || y==8){
         return true;
      } else {
         return false;
      }
   }

   if(navigator.appName=='Netscape'){
      var y=x.which;
      if(y>=48 && y<=57 || y==8){
         return true;
      } else {
         return false;
      }
   }
}

Caso deseje trocar informações, mande um e-mail para btayar2006@gmail.com.

Eng. Comp. Bruno S. Tayar.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Estudando para LPI com PenguinBrain

Aprenda Linux sem gastar nada, inclusive LPI

Console colorido no Debian

Administração de usuários no Linux

Desligamento automático do Ubuntu

  

Comentários
[1] Comentário enviado por btayar2006 em 05/07/2007 - 08:01h

Caso queiram incluir o Konqueror na brincadeira, fica da seguinte forma:

function checaNumero(x){
if(navigator.appName=='Microsoft Internet Explorer' || navigator.appName=='Konqueror'){
var y=x.keyCode;
if(y>=48 && y<=57 || y==8){
return true;
} else {
return false;
}
}

if(navigator.appName=='Netscape'){
var y=x.which;
if(y>=48 && y<=57 || y==8){
return true;
} else {
return false;
}
}
}

[2] Comentário enviado por hugoeustaquio em 06/11/2007 - 10:15h

Que tal usar jQuery e acabar com todos esses problemas de uma vez por todas?

http://jquery.com/



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts