[javascript] Código que não funciona no Firefox funciona no IE  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
Rafael Afonso
Virtual Machine Man
[Avatar]
Membro desde: 05/12/2002 16:03:43
Mensagens: 719
Localização: São Paulo/SP
Offline

Olá:

Achei o código abaixo nesta página do C2:

Como está escrito na página, isto seria um prompt JavaScript em HTML. Ao rodar no IE, não há nenhum problema. Entretanto ao Rodar no Firefox (1.5) aparece a seguinte mensagem de erro:

uncaught exception: [Exception... "Not enough arguments [nsIDOMXPathEvaluator.evaluate]" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: file:///C:/Documents%20and%20Settings/meta.tazevedo/Desktop/js-prompt.html :: onclick :: line 1" data: no]

Alguém sabe do que se trata?

Grato,

Rafael Ubiratam Clemente Afonso
---------------------------------------
GitHub
ScalaFX
LinkedIn
[MSN]
ASOBrasil
JavaEvangelist
[Avatar]

Membro desde: 25/06/2005 20:57:30
Mensagens: 402
Localização: São Paulo
Offline

Rafael Afonso,


É só renomear a função que o bagulho funciona! Provavelmente "evaluate" é palavra reservada do Firefox.


ASOBrasil

Java Examples || Useful links for web developer
[Email]
Rafael Afonso
Virtual Machine Man
[Avatar]
Membro desde: 05/12/2002 16:03:43
Mensagens: 719
Localização: São Paulo/SP
Offline

ASOBrasil wrote:Rafael Afonso,


É só renomear a função que o bagulho funciona! Provavelmente "evaluate" é palavra reservada do Firefox.


ASOBrasil

Pois é! Funcionou! Muito Obrigado!!!

Rafael Ubiratam Clemente Afonso
---------------------------------------
GitHub
ScalaFX
LinkedIn
[MSN]
marcilio
Smalltalk

Membro desde: 09/07/2003 10:53:58
Mensagens: 2
Offline

Amigos, alguém poderia me dizer porque que o javascript abaixo para permitir que se digite apenas números em um campo, funciona no IE mas não funciona no Firefox?

//Só aceita numeros
function Numero()
{
if (document.all)
var tecla = event.keyCode;
else if(document.layers)
var tecla = e.which;
if (tecla > 47 && tecla < 5
return true;
else
{
if (tecla != 8 && tecla != 13)
{
event.keyCode = null;
}
else
return true;
}
}
andrefrancobio
Smalltalk

Membro desde: 17/02/2010 10:24:29
Mensagens: 2
Offline

Caros amigos,

Criei um formulário de cadastro, mas ele só funciona o IE...no Firefox não consegue abrir o arquivo "envia.php"

Segue o código do cadastro.php e do envia.php:


CADASTRO.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulário de Cadastro da Rede Socioambiental da APA SUL RMBH</title>

<link rel="stylesheet" type="text/css" href="include/style.css">

<style type="text/css">
<!--
a:link {
color: #0E0D0F;
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
a:active {
text-decoration: none;
}
body {
background-color: #E7F0AD;
}
-->
</style>

<script language="JavaScript1.2" type="text/javascript">

<!--

function enviar() {

if (!cadastro.nome.value) {

alert("Por favor, escreva seu nome.");

cadastro.nome.focus();

}

else if (!cadastro.email.value) {

alert("Por favor, escreva seu e-mail.");

cadastro.email.focus();

}

else if (cadastro.email.value.indexOf("@") == -1 || cadastro.email.value.indexOf(".") == -1) {

alert("O e-mail que você digitou é inválido.");

cadastro.email.select();

}

else if (!cadastro.comentario.value) {

alert("Por favor, escreva um assunto para a mensagem.");

cadastro.assunto.focus();

}

else if (!cadastro.comentario.value) {

alert("Por favor, escreva a sua mensagem.");

cadastro.mensagem.focus();

}

else {

cadastro.submit();

}

}

-->

</script>

</head>

<body marginheight="0" marginwidth="0" topmargin="0" rightmargin="0" bottommargin="0" leftmargin="0">



<table border="0" cellpadding="0" cellspacing="0" width="600">

<tr>

<td height="200"><img src="cabecalho_cadastro.jpg" alt="cabeçalho" width="600" height="200" /></td>
</tr>

<table width="600" border="0" cellpadding="0" cellspacing="4">

<form action="envia.php" method="post" name="cadastro">


<input type="hidden" name="acao" value="1" />

<tr>

<td width="100" height="50" style="vertical-align: middle;"><p style="margin: 0 0 0 0; text-align: right;">cadastro para pessoa:</p></td>

<td width="488"><input type="radio" value="fisica" checked="checked" name="cadastro_para" />
física -
<input type="radio" name="cadastro_para" value="juridica" />
jurídica</td>

</tr>

<tr>

<td width="100" height="28" style="vertical-align: middle;"><p style="margin: 0 0 0 0; text-align: right;">nome ou instituição:</p></td>

<td width="488"><input name="nome" type="text" class="form" size="70" /></td>
</tr>

<tr>

<td height="30" style="vertical-align: middle;"><p style="text-align: right; margin: 0 0 0 0;"><em>e-mail</em>:</p></td>

<td><input name="email" type="text" class="form" size="70" /></td>
</tr>

<tr>

<td height="32" style="vertical-align: middle;"><p style="text-align: right; margin: 0 0 0 0;"><em>website</em>:</p></td>

<td><input name="website" type="text" class="form" size="70" /></td>
</tr>

<tr>
<td height="30" style="vertical-align: middle;"><p style="text-align: right; margin: 0 0 0 0;">endereço:</p></td>

<td><input name="endereco" type="text" class="form" size="70" /></td>
</tr>

<tr>

<td height="32" style="vertical-align: middle;"><p style="text-align: right; margin: 0 0 0 0;">cidade:</p></td>

<td><input name="cidade" type="text" class="form" size="70" /></td>
</tr>

<tr>

<td height="32" style="vertical-align: middle;"><p style="text-align: right; margin: 0 0 0 0;">estado:</p></td>

<td><input name="estado" type="text" class="form" size="70" /></td>
</tr>

<tr>

<td height="32" style="vertical-align: middle;"><p style="text-align: right; margin: 0 0 0 0;">telefone:</p></td>

<td><input name="prefixo" type="text" class="form" size="5" width="10" />
<input name="fone" type="text" class="form" size="30" /></td>
</tr>

<tr>

<td height="32" style="vertical-align: middle;"><p style="text-align: right; margin: 0 0 0 0;">fax:</p></td>

<td><input name="prefixo2" type="text" class="form" size="5" width="10" /> <input name="fax" type="text" class="form" size="30" /></td>
</tr>

<tr>

<td height="83" style="vertical-align: middle;"><p style="text-align: right; margin: 0 0 0 0;">comentário:</p></td>

<td><textarea class="form" rows="5" name="comentario"></textarea></td>
</tr>
<tr>

<td height="25" colspan="2"><hr />
</td>
</tr>

<tr>
<td height="83" style="vertical-align: middle;"><p style="text-align: right; margin: 0 0 0 0;">idade:</p></td>
<td valign="middle" height="25"><select name="idade" size="1">
<option selected="selected">idade</option>
<option value="18 a 25">18 a 25</option>
<option value="26 a 35">26 a 35</option>
<option value="36 a 45">36 a 45</option>
<option value="46 a 50">46 a 50</option>
<option value="mais de 50">mais de 50</option>
</select> (em caso de
pessoa física)</td>
</tr>


<tr>

<td height="32" style="vertical-align: middle;"><p style="text-align: right; margin: 0 0 0 0;">responsável:</p></td>

<td><input name="responsavel" type="text" class="form" size="70" /></td>
</tr>

<tr>

<td height="32" style="vertical-align: middle;"><p style="text-align: right; margin: 0 0 0 0;">cargo:</p></td>

<td><input name="cargo" type="text" class="form" size="70" /></td>
</tr>

<tr>

<td height="32" style="vertical-align: middle;"><p style="text-align: right; margin: 0 0 0 0;">ramo de atuação:</p></td>

<td><input name="ramo" type="text" class="form" size="47" />
(em caso de empresa)</td>
</tr>

<tr>

<td height="25" colspan="2"><p style="text-align: right; margin: 0 0 0 0;"><a href="javascript:enviar()">» enviar</a> | <a href="javascript:cadastro.reset()">» limpar</a></p></td>
</tr>
<tr>
<td></form></td></tr>
</table> </td>
</tr>
</table>



</body>

<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-283422-45");
pageTracker._setDomainName("none");
pageTracker._setAllowLinker(true);
pageTracker._trackPageview();
} catch(err) {}</script>


</html>

ENVIA.php:

<?
$cadastro_para = $_POST["cadastro_para"];
$nome = $_POST["nome"];
$email = $_POST["email"];
$website = $_POST["website"];
$endereco = $_POST["endereco"];
$cidade = $_POST["cidade"];
$estado = $_POST["estado"];
$prefixo = $_POST["prefixo"];
$fone = $_POST["fone"];
$prefixo2 = $_POST["prefixo2"];
$fax = $_POST["fax"];
$comentario = $_POST["comentario"];
$idade = $_POST["idade"];
$responsavel = $_POST["responsavel"];
$cargo = $_POST["cargo"];
$ramo = $_POST["ramo"];
$assunto = $_POST["APA SUL RMBH"];

global $email;

$data = date("d/m/y");
$ip = $_SERVER['REMOTE_ADDR'];
$navegador = $_SERVER['HTTP_USER_AGENT'];
$hora = date("H:i");

mail ("socioambiental@redeapasul.com.br",
"$assunto",
"Nome: $nome\nData: $data\nIp: $ip\nNavegador: $navegador\nHora: $hora\nCadastro para: $cadastro_para\nE-mail: $email\nWebsite: $website\nEndereço: $endereco\nCidade: $cidade\nEstado: $estado\nPrefixo: $prefixo\nTelefone: $fone\n\nPrefixo(Fax): $prefixo2\nFax: $fax\nComentário: $comentario\nIdade: $idade\nResponsável: $responsavel\nCargo: $cargo\nRamo: $ramo",
"From: $email"
);

$site = "socioambiental@redeapasul.com.br";
$titulo = "Cadastro na Rede Socioambiental da APA SUL RMBH";
$msg = "$nome, obrigado por fazer parte da Rede Socioambiental da APA SUL RMBH, em breve entraremos em contato";

mail("$email",
"$titulo",
"$msg",
"From: $site"
);
echo "<p align=center>$nome, seu cadastro foi enviado com sucesso!</p>";
echo "<p align=center>Estaremos retornando em breve.</p>";
?>


OBRIGADO PELA AJUDA.

ABRAÇOS
Java Lover
Debugger
[Avatar]

Membro desde: 24/02/2010 16:27:05
Mensagens: 62
Localização: Belo Horizonte / MG
Offline

andrefrancobio wrote:Caros amigos,

Criei um formulário de cadastro, mas ele só funciona o IE...no Firefox não consegue abrir o arquivo "envia.php"

Segue o código do cadastro.php e do envia.php:

É cômico se não fosse trágico.
Como alguém em são consciência se inscreve no GUJ (Grupo de Usuários Java) e posta um tópico sobre PHP ?
Nada contra esse script serve-side...


Dúvida solucionada ?
  • Acrescente ao nome do tópico [RESOLVIDO].
  • Explique a falha e como resolveu.
  • Agradeça a dica.
  • LucasAdri07
    Virtual Machine Man
    [Avatar]

    Membro desde: 02/03/2010 14:01:49
    Mensagens: 749
    Localização: Jundiaí/SP
    Online

    Java Lover wrote:
    andrefrancobio wrote:Caros amigos,

    Criei um formulário de cadastro, mas ele só funciona o IE...no Firefox não consegue abrir o arquivo "envia.php"

    Segue o código do cadastro.php e do envia.php:

    É cômico se não fosse trágico.
    Como alguém em são consciência se inscreve no GUJ (Grupo de Usuários Java) e posta um tópico sobre PHP ?
    Nada contra esse script serve-side...


    É tragico a pessoa não observar que ele postou na sessão "Assuntos Gerais (Off-topic)"

    _________________________________________________________________________________________________________________________________

    Adicione o grupo do GUJ no msn: group1205493@groupsim.com

    Lucas:
    Auxiliar Suporte Técnico.
    Aprendendo Java...



    [Email] [MSN]
    zelopes
    JavaBaby
    [Avatar]

    Membro desde: 10/02/2005 06:56:13
    Mensagens: 96
    Offline

    andrefrancobio

    você esta tratando seu javascript errado.

    function enviar() {
    if (!cadastro.nome.value) {
    alert("Por favor, escreva seu nome.");
    cadastro.nome.focus();
    ...
    ...

    falta o "document" antes para acessar o formulario...seria assim:

    function enviar() {
    if (!document.cadastro.nome.value) {
    alert("Por favor, escreva seu nome.");
    document.cadastro.nome.focus();
    ...
    ...
    zelopes
    JavaBaby
    [Avatar]

    Membro desde: 10/02/2005 06:56:13
    Mensagens: 96
    Offline

    marcilio wrote:Amigos, alguém poderia me dizer porque que o javascript abaixo para permitir que se digite apenas números em um campo, funciona no IE mas não funciona no Firefox?

    //Só aceita numeros
    function Numero()
    {
    if (document.all)
    var tecla = event.keyCode;
    else if(document.layers)
    var tecla = e.which;
    if (tecla > 47 && tecla < 5
    return true;
    else
    {
    if (tecla != 8 && tecla != 13)
    {
    event.keyCode = null;
    }
    else
    return true;
    }
    }


    a maneria de se tratar o keyCode no IE e no firefox são diferentes, para pegar para ambos use:

    var tecla = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    clever
    JavaTeenager

    Membro desde: 15/12/2008 09:04:27
    Mensagens: 171
    Localização: Dois Vizinhos - PR.
    Offline

    Aproveitando o tópico, tenho uma dúvida. Eu fiz uma validação em javascript e depois chamei no jsp. No IE funciona perfeitamente, mas no firefox nao funciona perfeitamente. Só aparece a mensagem: Data incorreta!! Ano informado maior que ano atual.

    Alguém tem uma ideia do que poderia estar acontecendo???

    Meu JavaScript é esse:

    function validarData(campo){

    var vdt = new Date();
    var vdia = vdt.getDay();
    var vmes = vdt.getMonth();
    var vano = vdt.getYear();
    var dia = campo.value.substring(0,2);
    var mes = campo.value.substring(3,5);
    var ano = campo.value.substring(6,10);

    if((mes==4 || mes==6 || mes==9 || mes==11) && dia > 30){
    alert("Dia incorreto !!! O mes especificado contem no maximo 30 dias.");
    campo.focus();
    return false;
    } else{ //1
    if(dia > 31){
    alert("Dia incorreto !!! O mes especificado contem no maximo 31 dias.");
    campo.focus();
    return false;
    }else{
    if(ano%4!=0 && mes==2 && dia>28){
    alert("Data incorreta!! O mes especificado contem no maximo 28 dias.");
    campo.focus();
    return false;
    } else{ //2

    if(ano%4==0 && mes==2 && dia>29){
    alert("Data incorreta!! O mes especificado contem no maximo 29 dias.");
    campo.focus();
    return false;
    } else{ //3

    if (mes > 12) {
    alert("Data incorreta!! Um ano contem no maximo 12 meses.");
    campo.focus();
    return false;
    }else{ //4
    if (ano > vano) {
    alert("Data incorreta!! Ano informado maior que ano atual.");
    campo.focus();
    return false;
    }else{ //5
    return true;
    } //5-else
    } //4-else
    } //3-else
    }//2-else
    }
    }
    }



    E o meu JSP onde chamo a função é esse:

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>http://wbotelhos.wordpress.com</title>
    <script language="javascript" src="../javascripts/validarFormulario.js"></script>
    </head>
    <body onload="form.nome.focus()" bgcolor="#F5F5DC" link="#ffffcc" vlink="#ffffcc" alink="#ffffcc">
    <jsp:include page="cabecalho.jsp" flush="true" />
    <script>
    window.history.forward(1);
    </Script>
    <form id="form" action="<c:url value='/novousuario'/>" method="post">
    <table bgcolor="#FFFFE0" border="0" style="width: 90%; height: 34px; text-align: left; margin-left: auto; margin-right: auto;">
    <tbody>
    <tr>
    <td bgcolor="black" width="13%">
    <div style="text-align: center;">
    <a href="<c:url value='/usuario/logar'/>">Página Principal</a></div>
    </td>
    <td bgcolor="black" width="13%">
    <div style="text-align: center;">
    <a href="<c:url value='/usuario'/>">Listar usuario</a></div>
    </td>
    <td bgcolor="black" width="13%">
    <div style="text-align: center;">
    <a href="<c:url value='/'/>">Logout</a></div>
    </td>
    <td bgcolor="black" width="13%">

    </td>
    <td bgcolor="black" width="13%">

    </td>
    <td bgcolor="black" width="13%">

    </td>
    <td bgcolor="black" width="13%">

    </td>
    </tr>
    </tbody>
    </table>
    <br>

    <input type="hidden" name="usuario.codigo" value="${usuario.codigo}"/><br/>

    <table bgcolor="#FFFFE0" align="center" border="3" bordercolor="#000000" cellPadding="2" cellSpacing="3" width="30%" height="25">
    <tr>
    <td align="center" width="50%">  <b>Nome:</b> </td>
    <td align="center" width="50%">  
    <input id="nome" type="text" name="usuario.nome" value="${usuario.nome}" size="16"/><font size="1"/> </font></td>
    </tr>
    <tr>
    <td align="center" width="50%">  <b>Login:</b> </td>
    <td align="center" width="50%">  
    <input id="login" type="text" name="usuario.login" value="${usuario.login}" size="16"/><font size="1"/> </font></td>
    </tr>
    <tr>
    <td align="center" width="50%">  <b>Senha:</b> </td>
    <td align="center"" width="50%">  
    <input id="senha" type="password" name="usuario.senha" value="${usuario.senha}" size="18"/><font size="1"/> </font></td>
    </tr>
    <tr>
    <td align="center" width="50%">  <b>Data de Nascimento:</b> </td>
    <td align="center"" width="50%">  
    <input id="data" onkeyup="somente_numero(this);" onkeydown="return formata_data(this);" type="text" name="usuario.dtnascimento" maxlength="10" value="${usuario.dtnascimento}" size="16" />
    <font size="1"/> </font></td>
    </tr>
    <tr>
    <td align="center" width="50%">  <b>
    <input type="checkbox" name="usuario.ativo" ${usuario.ativo=="Sim"?"checked":""} size="16"/>Ativo</b><font size="1"/></font></td>
    </tr>
    </table>
    <table align="center" border="0" cellPadding="2" cellSpacing="3" width="30%" height="25">
    <tr>
    <td align="center" width="50%">  
    <input onclick="return validarCadastro(nome,login,senha,data);" type="submit" value="Salvar"/></td>
    </tr>
    </table>
    </form>
    </body>
    </html>


    Se alguém puder me ajudar fico grato.

    CLEVERSON ROSSI.
    clever-rossi@hotmail.com
    [Email] [MSN]
     
    Índice dos Fóruns » Assuntos gerais (Off-topic)
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team