Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

JavaScript sem mistérios para Mozilla/Netscape e Microsoft Internet Explorer
Linux user
Publicado por Bruno Tayar em 05/07/2007

Login: btayar2006, 6059 pontos
[ Hits: 5472 ]

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
   Dica Linux recomendada Debian Squeeze - erro no APT "Failed to exec method /usr/lib/apt/methods/"
   Dica Linux recomendada Simulação de ataque DDoS com a aplicação ddosim
   Dica Linux recomendada Adicionando corretor ortográfico em português no Vim
   Dica Linux recomendada Placa de rede Encore Enl 832 icnt
   Dica Linux recomendada C - Resolvendo problemas com buffers

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


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.