Ir ao conteúdo
  • Cadastre-se
Jonatan_7

JavaScript: no IE vai bem, já no Firefox...

Recommended Posts

Alguns códigos que eu fiz em JavaScript funcionam perfeitamente bem no Internet Explorer. Mas no Firefox e seus "parentes" (como Netscape e Flock), os scripts ou funcionam parcialmente, ou funcionam bem e a página nunca pára de carregar, ou simplesmente nada roda.

O que eu posso fazer para os JScripts funcionarem do mesmo jeito no IE e no Firefox?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que voce pode fazer é aprender a codificar javascript direito por que quem interpreta errado o ecma é o IE, provavelmente voce está usando algumas funções loucas que só o IE tem e esperando que funcione em browsers decentes como o firefox.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, aqui tem um script que funcionou perfeitamente bem no IE, mas no Firefox nem chegou a rodar.

É um script de validação de campos.


function validar()
{
with(frmPrincipal)
{
cpfReq = false;
if(rdInscricao[1].checked)
cpfReq = true;
if(!rdInscricao[0].checked && !rdInscricao[1].checked)
alert("Selecione um tipo de inscrição!");
else if(txtEmail.value == "")
alert("Preencha o campo e-mail!");
else if(txtEmail.value.indexOf("@") < 1)
alert("Seu e-mail não possui o caractere \"@\"");
else if(txtEmail.value.substring(txtEmail.value.indexOf("@"),
txtEmail.value.length).indexOf(".") < 1)
alert("Digite um e-mail válido!");
else if(txtSenha.value == "")
alert("Digite uma senha!");
else if(txtSenha.value.length < 6)
alert("Sua senha é muito curta. Ela deve ter pelo menos 6 caracteres.");
else if(txtNome.value == "")
alert("Preencha o campo nome!");
else if(cpfReq && txtCPF.value == "")
alert("Seu tipo de inscrição exige o cadastro de um CPF.");
else if(isNaN(txtCPF.value) || txtCPF.value.charAt(0) == "-")
alert("O CPF deve ser numérico, sem pontos ou traços.");
else if(txtRG.value == "")
alert("Preencha o campo RG!");
else if(isNaN(txtRG.value) || txtRG.value.charAt(0) == "-")
alert("O RG deve ser numérico, sem pontos ou traços.");

// Início da verificação da data
else if(txtDia.value == "" || isNaN(txtDia.value) || txtDia.value < 1 ||
txtDia.value > 31 || txtDia.value % 1 != 0)
alert("Digite um dia válido.");
else if(txtMes.value == "" || isNaN(txtMes.value) || txtMes.value < 1 ||
txtMes.value > 12 || txtMes.value % 1 != 0)
alert("Digite um mês válido.");
else if(txtAno.value == "" || isNaN(txtAno.value) || txtAno.value == 0 ||
txtAno.value % 1 != 0)
alert("Digite um ano válido.");
else if(txtDia.value == 31 && (txtMes.value == 2 || txtMes.value == 4 ||
txtMes.value == 6 || txtMes.value == 9 || txtMes.value == 11))
alert("Digite uma data válida.");
else if(txtDia.value == 30 && txtMes.value == 2)
alert("Digite uma data válida.");
else if(txtDia.value == 29 && txtMes.value == 2)
if(txtAno.value % 400 != 0 && txtAno.value % 100 == 0)
alert("Digite uma data válida.");
else if(txtAno.value % 400 != 0 && txtAno.value % 100 != 0 &&
txtAno.value % 4 != 0)
alert("Digite uma data válida.");
// Fim da verificação da data

else if(txtEndereco.value == "")
alert("Preencha o campo endereço!");
else if(txtNumero.value == "")
alert("Preencha o campo número!");
else if(isNaN(txtNumero.value) || txtNumero.value <= 0 ||
txtNumero.value % 1 != 0)
alert("Digite um número válido.");
else if(txtBairro.value == "")
alert("Preencha o campo bairro!");
else if(txtCEP.value == "")
alert("Preencha o campo CPF!");
else if(isNaN(txtCEP.value) || txtCEP.value.charAt(0) == "-")
alert("O CEP deve ser numérico, sem pontos ou traços.");
else if(txtCidade.value == "")
alert("Preencha o campo cidade!");
else if(txtTelefone.value == "")
alert("Preencha o campo telefone!");
else if(isNaN(txtTelefone.value) || txtTelefone.value.charAt(0) == "-")
alert("O telefone deve ser numérico, sem parênteses ou traços.");
else if(txtCelular.value != "" && (isNaN(txtCelular.value) ||
txtCelular.value.charAt(0)))
alert("O número do celular deve ser numérico, sem parênteses ou traços.");
else
document.write("<font face=\"Segoe UI\" size=\"4\"><b>Cadastro efetuado.</b></font>");
}
document.close();
}

Já esse outro funcionou igualmente nos dois navegadores.

É um script que constrói uma tabela com ícones do tempo.

A página usa frames.


function carregarImagens(num)
{
images.document.open();
images.document.write("<html>");
images.document.write("<body bgcolor='#FAFAFA'><table bgcolor='#E0E0E0'><tr>");
images.document.write("<td><img src='Files/7even/" + num + ".png' /></td>");
images.document.write("<td><img src='Files/Aqua/" + num + ".png' /></td>");
images.document.write("<td><img src='Files/CRYSTAL/" + num + ".png' /></td>");
images.document.write("<td><img src='Files/Grzanka/" + num + ".png' /></td>");
images.document.write("<td><img src='Files/KonfabulatorPLUS/" + num + ".png' /></td>");
images.document.write("<td><img src='Files/Nova/" + num + ".png' /></td>");
if(!isNaN(num) && num < 10)
images.document.write("<td rowspan='4' bgcolor='#FAFAFA'><font face='Arial' style='font-size: 90pt' color='#C0C0C0'><b>\n0" + num + "</b></font></td>");
else
images.document.write("<td rowspan='4' bgcolor='#FAFAFA'><font face='Arial' style='font-size: 105pt' color='#C0C0C0'><b>\n" + num + "</b></font></td>");
images.document.write("</tr><tr>");
images.document.write("<td><font face='Tahoma' size='4'>7even</font></td>");
images.document.write("<td><font face='Tahoma' size='4'>Aqua</font></td>");
images.document.write("<td><font face='Tahoma' size='4'>Crystal</font></td>");
images.document.write("<td><font face='Tahoma' size='4'>Grzanka</font></td>");
images.document.write("<td><font face='Tahoma' size='4'>Konfabulator</font></td>");
images.document.write("<td><font face='Tahoma' size='4'>Nova</font></td>");
images.document.write("</tr><tr>");
images.document.write("<td><img src='Files/Shiny/" + num + ".png' /></td>");
images.document.write("<td><img src='Files/Stardock/" + num + ".png' /></td>");
images.document.write("<td><img src='Files/TWC/" + num + ".png' /></td>");
images.document.write("<td><img src='Files/TWCNew/" + num + ".png' /></td>");
images.document.write("<td><img src='Files/Weather128/" + num + ".png' /></td>");
images.document.write("<td><img src='Files/Weather.com/" + num + ".png' /></td>");
images.document.write("</tr><tr>");
images.document.write("<td><font face='Tahoma' size='4'>Shiny</font></td>");
images.document.write("<td><font face='Tahoma' size='4'>Stardock</font></td>");
images.document.write("<td><font face='Tahoma' size='4'>TWC</font></td>");
images.document.write("<td><font face='Tahoma' size='4'>TWC 2008</font></td>");
images.document.write("<td><font face='Tahoma' size='4'>Weather128</font></td>");
images.document.write("<td><font face='Tahoma' size='4'>Weather.com</font></td>");
images.document.write("</tr><tr>");
images.document.write("<td colspan='7' bgcolor='#FAFAFA'><font face='Arial' size='6' color='#C0C0C0'><b>");
if(num == "NA")
images.document.write("Not available<br/>Não disponível");
else switch(num)
{
case 0: images.document.write("Thunderstorm<br/>Tempestade"); break;
case 1: images.document.write("Rain and windy<br/>Chuva e vento"); break;
case 2: images.document.write("Light rain and windy<br/>Chuva leve e vento"); break;
case 3: images.document.write("Thunderstorms in the vicinity<br/>Tempestades nas proximidades"); break;
case 4: images.document.write("Heavy thunderstorm<br/>Forte tempestade"); break;
case 5: images.document.write("Sleet<br/>Chuva e neve"); break;
case 6: images.document.write("Hail<br/>Granizo"); break;
case 7: images.document.write("Freezing sleet<br/>Chuva e neve congelados"); break;
case 8: images.document.write("Freezing drizzle<br/>Garoa congelada"); break;
case 9: images.document.write("Drizzle<br/>Garoa"); break;
case 10: images.document.write("Freezing rain<br/>Chuva congelada"); break;
case 11: images.document.write("Light rain<br/>Chuva leve"); break;
case 12: images.document.write("Rain<br/>Chuva"); break;
case 13: images.document.write("Snow flurries<br/>Neve rápida"); break;
case 14: images.document.write("Light snow<br/>Neve fraca"); break;
case 15: images.document.write("Snow blowing<br/>Neve flutuando"); break;
case 16: images.document.write("Snow<br/>Neve"); break;
case 17: images.document.write("Light rain with thunder<br/>Chuva leve com trovoadas"); break;
case 18: images.document.write("Melting hail<br/>Granizo derretido"); break;
case 19: images.document.write("Dust<br/>Areia"); break;
case 20: images.document.write("Fog<br/>Neblina"); break;
case 21: images.document.write("Haze<br/>Névoa seca"); break;
case 22: images.document.write("Smoke<br/>Fumaça"); break;
case 23: images.document.write("Windy<br/>Vento"); break;
case 24: images.document.write("Variable wind<br/>Vento variável"); break;
case 25: images.document.write("Frigid<br/>Frio"); break;
case 26: images.document.write("Cloudy<br/>Nublado"); break;
case 27: images.document.write("Mostly cloudy (night)<br/>Encoberto (noite)"); break;
case 28: images.document.write("Mostly cloudy (day)<br/>Encoberto (dia)"); break;
case 29: images.document.write("Partly cloudy (night)<br/>Parcialmente nublado (noite)"); break;
case 30: images.document.write("Partly cloudy (day)<br/>Parcialmente nublado (dia)"); break;
case 31: images.document.write("Clear<br/>Limpo"); break;
case 32: images.document.write("Sunny<br/>Ensolarado"); break;
case 33: images.document.write("Fair (night)<br/>Aberto (noite)"); break;
case 34: images.document.write("Fair (day)<br/>Aberto (dia)"); break;
case 35: images.document.write("Rain with thunder<br/>Chuva com trovoadas"); break;
case 36: images.document.write("Hot<br/>Quente"); break;
case 37: images.document.write("Scattered thunderstorms (day)<br/>Tempestades dispersas (dia)"); break;
case 38: images.document.write("Thunder<br/>Trovoadas"); break;
case 39: images.document.write("Scattered showers (day)<br/>Chuvas dispersas (dia)"); break;
case 40: images.document.write("Heavy rain<br/>Chuva forte"); break;
case 41: images.document.write("Scattered snow showers (day)<br/>Neves dispersas (dia)"); break;
case 42: images.document.write("Heavy snow<br/>Neve forte"); break;
case 43: images.document.write("Snow and windy<br/>Neve e vento"); break;
case 44: images.document.write("Showers in the vicinity<br/>Chuvas nas proximidades"); break;
case 45: images.document.write("Scattered showers (night)<br/>Chuvas dispersas (noite)"); break;
case 46: images.document.write("Scattered snow showers (night)<br/>Neves dispersas (noite)"); break;
case 47: images.document.write("Scattered thunderstorms (night)<br/>Tempestades dispersas (noite)"); break;
}
images.document.write("</b></font></td></tr></table></body></html>");
images.document.close();
}

Usei document.close() para parar o carregamento no Firefox ao completar os comandos.

Não usei document.open() no primeiro porque o Firefox carregava "eternamente" e não fazia nada.

Assim, como eu faço para os scripts funcionarem igualmente nos dois navegadores?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte... entra no Firefox clica em Ferramentas > Console de Erros.

Clica no botao limpar e recarregue seu site. Vai aparecer todos os erros que o Firefox não consegue interpretar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×