[javascript] Código que não funciona no Firefox funciona no IE

Olá:

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

<html>
  <head><title>Eval()</title>
  <script language="JavaScript">
  <!--
    function evaluate()
    {
      //document.forms[0].out.value = 
        eval(document.forms[0].field.value);
    }
  -->
  </script>
  </head>
  <body>
    <form>
      <input type="button" name="go" value="go" onClick="evaluate()"><p>
      <textarea rows="20" cols="40" name="field">
 //start code   


 init();
 o.m1(1);


 function init()
 {
  o = new Object();
  o.a1 = 0;


  o.m1 = function(x)
  {
    alert("before:"+this.a1);
    this.a1 = x;
    alert("after:"+this.a1);
  }
 }


 //end code
      </textarea>
      <textarea rows="20" cols="40" name="out">
      </textarea>
    </form>
  </body>
 </html>

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:

Alguém sabe do que se trata?

Grato,

Rafael Afonso,

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

ASOBrasil

[quote=ASOBrasil]Rafael Afonso,

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

ASOBrasil[/quote]
Pois é! Funcionou! :lol: Muito Obrigado!!!

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 < 58)
return true;
else
{
if (tecla != 8 && tecla != 13)
{
event.keyCode = null;
}
else
return true;
}
}

[b]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:[/b]

CADASTRO.php:

Formulário de Cadastro da Rede Socioambiental da APA SUL RMBH
<td height="200"><img src="cabecalho_cadastro.jpg" alt="cabeçalho" width="600" height="200" /></td>
<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>

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 "

$nome, seu cadastro foi enviado com sucesso!

"; echo "

Estaremos retornando em breve.

"; ?>

OBRIGADO PELA AJUDA.

ABRAÇOS

[quote=andrefrancobio][b]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:[/b][/quote]
É 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

[quote=Java Lover][quote=andrefrancobio][b]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:[/b][/quote]
É 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…[/quote]

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

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 (![color=red]document.[/color]cadastro.nome.value) {
alert(“Por favor, escreva seu nome.”);
[color=red]document.[/color]cadastro.nome.focus();

[quote=marcilio]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 < 58)
return true;
else
{
if (tecla != 8 && tecla != 13)
{
event.keyCode = null;
}
else
return true;
}
}[/quote]

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;

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: [color=blue]Data incorreta!! Ano informado maior que ano atual.[/color]

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

Meu JavaScript é esse:
[color=blue]
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
	}   
}

}[/color]

E o meu JSP onde chamo a função é esse:
[color=blue]
<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>

<%@taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

http://wbotelhos.wordpress.com
	        </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%">&nbsp;&nbsp;<b>Nome:</b> </td>  
	             <td align="center" width="50%">&nbsp;&nbsp;
	             <input id="nome" type="text" name="usuario.nome" value="${usuario.nome}" size="16"/><font size="1"/>&nbsp;</font></td>
	        </tr>  
		    <tr>  
	             <td align="center" width="50%">&nbsp;&nbsp;<b>Login:</b> </td>  
	             <td align="center" width="50%">&nbsp;&nbsp;
	             <input id="login" type="text" name="usuario.login" value="${usuario.login}" size="16"/><font size="1"/>&nbsp;</font></td>  
		    </tr>  
		    <tr>  
	             <td align="center" width="50%">&nbsp;&nbsp;<b>Senha:</b> </td>  
	             <td align="center"" width="50%">&nbsp;&nbsp;
	             <input id="senha" type="password" name="usuario.senha" value="${usuario.senha}" size="18"/><font size="1"/>&nbsp;</font></td>  
		    </tr>
		    <tr>  
	             <td align="center" width="50%">&nbsp;&nbsp;<b>Data de Nascimento:</b> </td>  
	             <td align="center""  width="50%">&nbsp;&nbsp;
	             <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"/>&nbsp;</font></td>
		    </tr>   
		    <tr>  
	             <td align="center" width="50%">&nbsp;&nbsp;<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%">&nbsp;&nbsp;
		       <input onclick="return validarCadastro(nome,login,senha,data);" type="submit" value="Salvar"/></td>  
		    </tr>  
		 </table>
	</form>      
</body>           
[/color]

Se alguém puder me ajudar fico grato.