Halfar Postado Dezembro 13, 2006 Denunciar Share Postado Dezembro 13, 2006 Dá para confiar no JavaScript ou ele sofre de ataque epilético das idéias??Veja só a situação, tenho um programa com várias funcoes em JS, assim:<script>aqui varias funcoesmais funcoesetc..</script>tudo funcionando perfeitamente....aí precisei criar mais uma função.então acrescentei esta função no bloco acima, entre as tags <script> e </script>ai começou a aparecer aquela mensagem com o ícone amarelo no rodapé da pagina "objeto esperado"...verifiquei tudo e não achei erro nenhum...ai fiz o seguinte, fiz um bloco de script separado dos demais acima, abri um novo bloco de codigo js, assim:<script>Novafuncao()</script>aí ele diz que falta fechar um colchete... mas está tudo certo...A funcao em referencia que está dando problemas é a seguinte://===========================================================================================//a funcao VerificaPeriodo faz a seguinte verificação:// Se o usuario especificar mês e ano identicos para o periodo inicial e final, o calculo somente será//feito se o dia for igual a 0 (zero), tanto para o periodo inicial quanto para o periodo final.function VerificaPeriodo(){//este grupo de variaveis será usada na função VerificaPeriodovar DiaInicial = "";var MesInicial = "";var AnoInicial = "";var DiaFinal = "";var MesFinal = "";var AnoFinal = "";if(MesInicial == MesFinal and AnoInicial == AnoFinal){ if(DiaInicial == 0 and DiaFinal == 0){ return true; }else{ return false; }}else{return true;}}}Veja que a funcao é super-simples, não tem mistério nenhum...Testei esta funcao em uma nova pagina, somente com esta funcao, só para testar...ai não apresenta erro nenhum....Então acho que o JS não tá bem das ideias não...Afinal, o JS tem estes problemas?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 flavio Postado Dezembro 13, 2006 Denunciar Share Postado Dezembro 13, 2006 Afinal, o JS tem estes problemas??:Dnão Halfar... se há erro é por culpa do programador... sempre!no código que você postou tem uma chave a mais.... remove a última chave e vê se ainda dá problema.Dá Para Confiar No Javascript...?heheheh.... dá sim ... podes crer ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Halfar Postado Dezembro 13, 2006 Autor Denunciar Share Postado Dezembro 13, 2006 continua o erro... "objeto esperado".... mas a qual objeto ele está se referindo?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 flavio Postado Dezembro 13, 2006 Denunciar Share Postado Dezembro 13, 2006 pode ser erro em outra função... coloca teu codigo aí pra gente ver. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Halfar Postado Dezembro 13, 2006 Autor Denunciar Share Postado Dezembro 13, 2006 resolvi pegar a funcao e mudar ela de local. Ela estava junto num mesmo bloco onde existem varias funcoes. Resolvi tirar ela de lá e mandei ela lá para o final da página.dá erro, pede fechamento de colchetes, fala que o erro é na linha 1033, mas a ultima linha do script é 748...então, só para ver no que daria, acrescentei mais um colchete no final, dá o mesmo erro...então, resolvi apagar a funcao de vez, voltando o programa como era antes....aí tudo funciona beleza....não dá para entender....se quiserem eu posto o codigo todo, mas é meio grandinho.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 flavio Postado Dezembro 13, 2006 Denunciar Share Postado Dezembro 13, 2006 Um script pode não funcionar dependendo do lugar onde você o escreve, sim.Geralmente, quando se cria funções elas são colocadas no cabeçalho do HTML.Mas há casos em que se usa um bloco de códigos fora de uma função, colhendo dados de um campo de formulário, por exemplo.<script>alert(document.formulario.nome.value)</script><form name="formulario"><input type="text" name="nome" value="Rajneesh"><form>Nesse exemplo, haveria erro porque você pede uma informação do formulário antes do formulário existir.<form name="formulario"><input type="text" name="nome" value="Rajneesh"><form><script>alert(document.formulario.nome.value)</script>Agora, o formulário foi criado e em seguida se pede a informação. Aí está correto.Lembre que o navegador é um interpretador, que executa instrução por instrução uma por vez, de cima pra baixo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Halfar Postado Dezembro 13, 2006 Autor Denunciar Share Postado Dezembro 13, 2006 de fato, eu sempre costumo colocar os codigos js antes do formulario.No entanto, algo aqui agora me chama a atenção.Na realidade esta funcao ela será executada a partir de uma chamada que existe dentro de outra funcao, assim:function(teste1){codigos aqui...etc...VerificaPeriodo();}function VerificaPeriodo(){//este grupo de variaveis será usada na função VerificaPeriodovar DiaInicial = "";var MesInicial = "";var AnoInicial = "";var DiaFinal = "";var MesFinal = "";var AnoFinal = "";if(MesInicial == MesFinal and AnoInicial == AnoFinal){if(DiaInicial == 0 and DiaFinal == 0){return true;}else{return false;}}else{return true;}}}As variaveis que existem na funcao VerificaPeriodo(), na realidade elas são criadas e alimentadas na função teste1(), a funcao teste1 por sua vez, é executada quando o usuário clica num botão no formulário, que verifica várias funcoes, inclusie a funcao teste1().Eu coloquei estas variaveis aí apenas para mostrar o problema que ocorria... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Halfar Postado Dezembro 13, 2006 Autor Denunciar Share Postado Dezembro 13, 2006 Bem, encontrei a resposta desta coisa estranha....Não tinha nada a ver com as mensagens de objeto esperado ou } esperado....O problema é que numa determinada instrucao na funcao existia o operador and, e pelo jeito o JS se confunde com este operador, pois aceitou somente o operador && que corresponde ao andSendo este o problema, creio que o JS deve uma mensagem de erro mais coerente.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 flavio Postado Dezembro 14, 2006 Denunciar Share Postado Dezembro 14, 2006 Ih rapaz, não tinha visto isso.... c tem razão.e pelo jeito o JS se confunde com este operadorNa verdade o operador AND não é definido em JS. Os operadores são && ( E booleano) e || (OU booleano)Sendo este o problema, creio que o JS deve uma mensagem de erro mais coerente....As vezes a mensagem de erro num tem nada a ver com o erro, mesmo. Mas o "console de JavaScript" varia com o navegador usado. Se você usasse o Opera ou o Firefox (recomaendado pra uso com JS), talvez a mensagem fosse diferente, talvez mais coerente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Halfar
Dá para confiar no JavaScript ou ele sofre de ataque epilético das idéias??
Veja só a situação, tenho um programa com várias funcoes em JS, assim:
<script>
aqui varias funcoes
mais funcoes
etc..
</script>
tudo funcionando perfeitamente....
aí precisei criar mais uma função.
então acrescentei esta função no bloco acima, entre as tags <script> e </script>
ai começou a aparecer aquela mensagem com o ícone amarelo no rodapé da pagina "objeto esperado"...
verifiquei tudo e não achei erro nenhum...
ai fiz o seguinte, fiz um bloco de script separado dos demais acima, abri um novo bloco de codigo js, assim:
<script>
Novafuncao()
</script>
aí ele diz que falta fechar um colchete... mas está tudo certo...
A funcao em referencia que está dando problemas é a seguinte:
Veja que a funcao é super-simples, não tem mistério nenhum...
Testei esta funcao em uma nova pagina, somente com esta funcao, só para testar...
ai não apresenta erro nenhum....
Então acho que o JS não tá bem das ideias não...
Afinal, o JS tem estes problemas??
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.