• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

deathseeker25

[Resolvido] Alerta

12 mensagens neste tópico

Boas,

Antes de começar a programar em PHP, rsolvi fazer uma pagina em JavaScript e meti as mãos á obra nem há meia-hora atrás.

Elaborei o seguinte script:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 16px;
color: #000000;
}
body {
background-color: #FFFFFF;
}
-->
</style></head>

<body>
<script>
var d=novaData()
var dia=d.getDay()
var definido()

function mostrar_alerta()
{
alert("Boas,<p>Hoje é"+definido+".Seja bem-vindo")
}
switch(dia)
{
case 1:
definido=="Domingo"
break
case 2:
definido=="Segunda-feira"
break
case 3:
definido=="Terça-Feira"
break
case 4:
definido=="Quarta-feira"
break
case 5:
definido=="Quinta-feira"
break
case 6:
definido=="Sexta-feira"
break
case 7:
definido=="Sábado"
break
default:
document.write("Impossivel determinar o dia!Erro no sistema!")
}

</script>

<input type="button" onclick="mostrar_alerta()" value="Clique para mostrar alerta!">
</body>
</html>

Aqui tem o codigo-fonte da pagina completa. O problema é que quando clico na caixa que crio no index da página nada acontece.Alguem me consegue explicar porque?

Cumps

Skin: Adicionei Geshi && mudei titulo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Heyas all...

Bem vamos começar...tens aqui uma carrada de erros...

Vou citando o teu código, digo o que está errado, e ponho o meu código (penso que é o melhor...)

<script>
var d=novaData()
var dia=d.getDay()
var definido()

Primeiro...eu sei que não é necessário mas é sempre bom por na tag script qual é o script que estás a usar...

Segundo...a função novaData() não existe...o que tu querias era a new Date()

Terceiro...o defenido é uma variável e não uma função...logo não leva ()..

<script language="javascript" type="text/javascript" >
var d=new Date();
var dia=d.getDay();
var definido;

2º Parte:

case 1:
definido=="Domingo"
break
case 2:
definido=="Segunda-feira"
break
......

O == serve apenas para comparações, nunca para atribuições...ou seja fica algo do tipo:

case 1:
definido="Domingo"
break
case 2:
definido="Segunda-feira"
break;
....

3º e último:

function mostrar_alerta()
{
alert("Boas,<p>Hoje é"+definido+".Seja bem-vindo")
} 

Não podes passar tag's html por uma alert box..pelo menos que eu saiba...

Conselhos finais...

Aconselho-te a indentar o código...ou seja por tab's...para leitura fácil...é só para isso...e também a por ; no final de cada linha de código (só naquelas que podes é claro..) também para facilitar a leitura, visto que ele lê tudo da mesma maneira..

Já me esquecia...uma cena muito fixe que o FF tem é a "JavaScript Console" no menu tool's...diz-te tudo e mais alguma coisa sobre os erros e warnings que existam no javascript que a página usa...melhor debugger é impossivél..

Hasta all e espero ter ajudado [[]]

Skin: Adicionei Geshi

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas Lancaster,

Desde já agradeço pela ajuda que me deste, visto que consegui por o script a funcionar correctamente.

Gostava agora de obter mais algumas informações:

1º-Como posso fazer com que logo que abra a página apareça a mensagem acerca de que dia é, sem termos de clicar em algum botão como está a acontecer?

2º É possivel, através de alguma função pre-definida no Javascript, obter o ip do utilizador que acede ao forum? (visto que consigo obter o browser, a versão, verificar se os cookies estão activados, etc)

Estas são as minhas duvidas do momento. Mais cedo ou mais tarde vou regressar com mais algumas.

Abraço e cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação
Boas Lancaster,

Desde já agradeço pela ajuda que me deste, visto que consegui por o script a funcionar correctamente.

Gostava agora de obter mais algumas informações:

1º-Como posso fazer com que logo que abra a página apareça a mensagem acerca de que dia é, sem termos de clicar em algum botão como está a acontecer?

Isto é fácil, basta na tag body pores:

<body onLoad="mostrar_alerta();">
 

Btw...eu costumo por as funções de javascript entre a tag </head> e a tag <body> mais por uma questão de uma pessoa abrir o código, e ver logo que javascript é que existe..mas não é importante...questões de oraganização de código..

Citação

2º É possivel, através de alguma função pre-definida no Javascript, obter o ip do utilizador que acede ao forum? (visto que consigo obter o browser, a versão, verificar se os cookies estão activados, etc)

Claro que "dá"...o user tem é que ter o java virtual machine, ou o java da sun...mas isso praticamente toda a gente tem..


<script language="javascript" type="text/javascript">
var ip = new java.net.InetAddress.getLocalHost();
var ipStr = new java.lang.String(ip);
document.writeln(ipStr.substring(ipStr.indexOf("/")+1));
</script>
 

Tive agora a testar em localhost e em página web...e nenhum dos script's que arranjei dá...mas googla por aí que alguma hás-de encontrar que funcione..

http://pwp.netcabo.pt/lancaster/sd.html -> A página onde estive a testar os scripts do IP...

Hasta all..

Skin: Adicionei Geshi

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Não consegui resolver nenhum dos problemas:


<body onload="mostrar_alerta();">
<script language="javascript" type="text/javascript">
var d=new Date() ;     //variaveis do script dos dias//
var dia=d.getDay();
var definido;

function mostrar_alerta()
{
alert("Boas, Hoje é "+definido+".Seja bem-vindo"!)
}
switch(dia)
{
case 1:
definido="Domingo"
break;
case 2:
definido="Segunda-feira"
break;
case 3:
definido="Terça-Feira"
break;
case 4:
definido="Quarta-feira"
break;
case 5:
definido="Quinta-feira"
break;
case 6:
definido="Sexta-feira"
break;
case 7:
definido="Sábado"
break;
default:
document.write("Impossivel determinar o dia!Erro no sistema!")
}
</script>

Mesmo colocando o nome da função exactamente como colcaste em body onLoad nada acontecer quando abro a página.

Quanto ao script que lê o ip, depois de quase meia-hora de pesquisa, encontrei diversas opiniões em foruns que já não estão activos e encontrei tambem algumas dezenas de scripts diferentes.

O que é verdade é que os scripts não funcionam (pelo menos nos browsers actuais, visto que são já antigos os scripts) e as opiniões apontam todas para a utilização do PHP.

De qualquer forma, gostava de saber a tua opinião em relação a isto.

Quanto ao body onLoad, devo estar a fazer algo errado.

Cumps e obrigado desde já pela ajuda.

Skin: Adicionei Geshi

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Heyas,

essa é uma das vantagens em colocares o codigo JavaScript nos headers. O que se passa é que quando o browser começa a carregar a pagina e despoleta o evento onLoad, ainda na apareceu o scritp de JS.

Experimenta colocar o codigo no header.

Fica bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas Grettir,

<head>
<title>Javascript</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style type="text/css">
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 16px;
color: #000000;
}
body {
background-color: #FFFFFF;
}
-->
</style>

<script language="javascript" type="text/javascript">
var d=new Date() ;     //variaveis do script dos dias//
var dia=d.getDay();
var definido;

function mostrar_alerta()
{
alert("Boas, Hoje é "+definido+".Seja bem-vindo"!)
}
switch(dia)
{
case 1:
definido="Domingo"
break;
case 2:
definido="Segunda-feira"
break;
case 3:
definido="Terça-Feira"
break;
case 4:
definido="Quarta-feira"
break;
case 5:
definido="Quinta-feira"
break;
case 6:
definido="Sexta-feira"
break;
case 7:
definido="Sábado"
break;
default:
document.write("Impossivel determinar o dia!Erro no sistema!")
}
</script>

<script language="javascript" type="text/javascript">
document.write("<p>Browser:")
document.write(navigator.appName + "<p>")
document.write("<p>Versão do browser:")
document.write(navigator.appVersion + "<p>")
document.write("Plataforma:")
document.write(navigator.platform + "<p>")
document.write("Cookies activadas:")
document.write(navigator.cookieEnabled +"<p>")
document.write("Cabeçalho do browser:")
document.write(navigator.userAgent + "<p>")

</script>

</head>

Na verdade continua sem funcionar. Não sei se estou a fazer alguma coisa mal, mas não me parece.

Peço tambem desculpa pelo tamanh dos posts, mas é a unica forma de vos mostrar que não está a funcionar e que (não) estou a fazer nada mal.

Cumps

Skin: Adicionei Geshi

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Heyas all...

Experimenta por lá isto tudo no teu .html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body,td,th {
   font-family: Arial, Helvetica, sans-serif;
   font-size: 16px;
   color: #000000;
}
body {
   background-color: #FFFFFF;
}
-->
</style></head>

<body>
<script language="javascript" type="text/javascript" >
var d=new Date();
var dia=d.getDay();
var definido;

function mostrar_alerta()
{
alert("Boas,Hoje é "+definido+ ".Seja bem-vindo");
}

switch(dia)
{
case 1:
definido="Domingo"
break
case 2:
definido="Segunda-feira"
break;
case 3:
definido="Terça-Feira"
break
case 4:
definido="Quarta-feira"
break
case 5:
definido="Quinta-feira"
break
case 6:
definido="Sexta-feira"
break
case 7:
definido="Sábado"
break
default:
document.write("Impossivel determinar o dia!Erro no sistema!")
}

</script>
<script language="javascript" type="text/javascript">
document.write("<p>Browser:")
document.write(navigator.appName + "<p>")
document.write("<p>Versão do browser:")
document.write(navigator.appVersion + "<p>")
document.write("Plataforma:")
document.write(navigator.platform + "<p>")
document.write("Cookies activadas:")
document.write(navigator.cookieEnabled +"<p>")
document.write("Cabeçalho do browser:")
document.write(navigator.userAgent + "<p>")
</script> 

<body onLoad="mostrar_alerta();"> 
</html>

Substitui este código pelo código que tens no teu html...e vê o que dá...e vê tb a java script console no FF porque para ele não correr...alguma se está a passar...

Hasta all..

Skin: Adicionei Geshi

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Lancaster o teu código funcionou....

Já agora, para determinar o ip do utilizador estou a pensar faze-lo através de PHP e não de Javascript, porque todas as formas em Javascript parecem não funcionar.

Se assim for, que funções do PHP devo utilizar?

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tudo o que é client-side é uma bosta!

A única coisa em que são bons é em não sobrecarregar os servidores!  :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Lancaster o teu código funcionou....

Já agora, para determinar o ip do utilizador estou a pensar faze-lo através de PHP e não de Javascript, porque todas as formas em Javascript parecem não funcionar.

Se assim for, que funções do PHP devo utilizar?

Cumps

Heyas all...

Humm...só agora é que vi este post...lol passado praticamente 6 meses.... de qq das maneiras se não encontras-te como mostrar o IP através de PHP usa isto:

    <?
    echo $_SERVER['REMOTE_ADDR'];
    ?>

Hasta all e sorry pela demora...lol... [[]]

Skin: Adicionei Geshi

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Lancaster o teu código funcionou....

Já agora, para determinar o ip do utilizador estou a pensar faze-lo através de PHP e não de Javascript, porque todas as formas em Javascript parecem não funcionar.

Se assim for, que funções do PHP devo utilizar?

Cumps

Heyas all...

Humm...só agora é que vi este post...lol passado praticamente 6 meses.... de qq das maneiras se não encontras-te como mostrar o IP através de PHP usa isto:

    <?
    echo $_SERVER['REMOTE_ADDR'];
    ?>

Hasta all e sorry pela demora...lol... [[]]

Realmente, foi uma resposta demorada... :) No entanto agradeço, apesar de na altura ter conseguido o que pretendia... :)

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora