Responder a este comentário

Validação - Debug para JavaScript

Como e JavaScript é uma linguagem de programação client-side é um pouco mais complicado de verificar erros de sintaxe eu encontrar erros no script, infelizmente não existem muitas ferramentas práticas de debug, mas vamos falar sobre duas.

A função alert() serve principalmente para interagir com o usuário, mas ela pode ser utilizada para detectar erros, isso porque o browser,diferentemente de outras linguagens, não valida o código executando então o script até o erro. Por exemplo:

<script language="javascript"><!--
var prop =                           'toolbar=no,
                                            location=no,
                                            directories=no,
                                            status=no,
                                            menubar=no,
                                            scrollbars=no,
                                            resizable=yes,
                                            copyhistory=no,
                                            width=100
                                            height=100,
                                            screenX=150,
                                            screenY=150,
                                            top=150,
                                            left=150';
function popupWindow(url) {window.open(url,'popupWindow' prop;)
}
//--></script>
<a href="javascript:popupWindow('exemplo.htm')">Clique para ampliar</a>

Esse é um exemplo fácil, mas exemplifica bem, existem 2 erros no código e ao executar no IE, por exemplo, ele apresentaria apenas "erro de sintaxe" ou "Objeto esperado" sem mostrar exatamente onde está o problema, então vamos simular um debuguer insira a o código abaixo na linha 1 logo após "<!--"

alert('Passou');

Salve a página e abra em seu browser, se a mensagem for exibida, significa que o código está correto até ela, agora apague o alerta e escreva logo após " left=150'; " salve e atualize a página.

Você verá que a mensagem aparecerá novamente, recorte e cole logo após " Window' prop;) " salve e execute novamente.

Agora a mensagem não aparecerá, o que significa que você achou o erro. Analisando a linha do código verá que falta uma vírgula logo após " Window' ", corrigindo ficará assim " Window', prop;) ", salve e execute novamente.

Verá que mesmo assim a mensagem não aparecerá, veja que há uma variável na função a "prop". Olhando de perto perceberá que ela seta as propriedades da janela gerada pela função, e que cada propriedade é separada por uma vírgula menos esta " width=100 ", coloque a vírgula (" width=100, "), salve e execute novamente.

A mensagem aparecerá e o browser não apresentará mais o erro.

Pronto, você resolveu o problema.

Você pode utilizar o módulo Fireburg do Firefox, ao apresentar o erro ele mostra exatamente qual a linha da página onde está o problema em 90% das vezes, o que facilita muito o processo, mas caso ele não mostre exatamente ele mostra uma linha bem aproximada que pode servir de referência para você utilizar ao alert.

Estas técnicas facilitam muito a nossa vida ao programar na maioria das linguagens e quando não se pode utilizar o alert, há o die() ou exit() ou msgbox(), onde a técnica é a mesma.

Abraço,
Flaivo Ribeiro

Responder

  • Endereços de páginas de internet e emails viram links automaticamente.
  • Tags HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Quebras de linhas e parágrafos são feitos automaticamente.

Mais informações sobre as opções de formatação

CAPTCHA
Este teste serve para comprovar que você é um Ser Humano e evitar envios automáticos de SPAM.
Image CAPTCHA
Enter the characters shown in the image.