Responder a este comentário
Validação - Debug para JavaScript
Enviado por Flavio Ribeiro, sex, 20/03/2009 - 05:19Como 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
- Comentar
- 602 leituras
