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

karwan

Ajuda: Código Javascript. Funciona num lado e não noutro

7 mensagens neste tópico

Boas!

N percebo literalmente nada de informática, mas por força das circunstanias lá tive de aprender qualquer coisa.

Adaptei este código java script, de um contador da população mundial, para fazer outros géneros de contadores.

O código é assim:

<script language="javascript">  
function abrePopUp(urlImagem)
{  
	window.open(urlImagem,'Foto_Ampliada','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=460,height=380');   
}
  
function changeImage(id, image)
{
	document.getElementById(id).src = image
}

function ChangeValue(number,pv)
{
	numberstring =""
	var j=0 
	var i=0
	while (number > 1)
	 { 

	    numberstring = (Math.round(number-0.5) % 10) + numberstring
	    number= number / 10
	    j++
	    if (number > 1 && j==3) { 
			numberstring = "," + numberstring 
			j=0}
	    i++
	 }

	 numberstring=numberstring

	if (pv==1) { return numberstring }
}

function update(inicio, taxa)
{


	nu = new Date () 
	anoinicial = new Date (2009,0,1)

	diff = nu.getTime() - anoinicial.getTime()
	totaleschuld= diff*(taxa/365.6/24.0/60.0/60.0/1000) + inicio
	return ChangeValue(totaleschuld, 1)
}

function main()
{
	doUpdate()
}

function doUpdate()
{
	document.getElementById("pop").innerHTML = update(499700, -10051)
	document.getElementById("nasc").innerHTML = update(0.0, 5647.0)
	document.getElementById("obitos").innerHTML = update(0.0, 7246.0)
	document.getElementById("av").innerHTML = update(0.0, 8372.0)
	document.getElementById("eg").innerHTML = update(0, 301109745.6)
	document.getElementById("ac").innerHTML = update(0.0, 59464300.0)
	document.getElementById("mb").innerHTML = update(0.0, 2737856300.0)
	setTimeout("main()",200)
}

window.onload = main
</script>   

De pois tenho de escrever no html, Para todos os ids:

<span id = "pop" style = "font-weight: bold"></span>

O código funciona-me perfeitamente numa página definida como uma tabela de 4 colunas.

No entanto quando mudo a configuração da tabela deixa de funcionar. E agora experimentei: Se pegarem no código e fizeram um html com isto tb n funciona.  :wallbash:

Alguem sabe o q pode estar errado?

Já falei com alguns amigos informáticos e eles dizem simplesmente q "é mt estranho"

Cumprimentos

Karwan

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é deveras estranho, não há qualquer razão para ESSE código não funcionar quando não tens uma tabela de 4 colunas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Primeiro onde estão os ; ? Devem sempre ter ; as instruções em JavaScript pois alguns browsers podem não aceitar

Depois se no HTML só tem:

<span id = "pop" style = "font-weight: bold"></span>

o código não vai funcionar correctamente porque no doUpdate necessitas do elemento nasc, obitos, etc.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Todas as implementações com que trabalhei (IE6+, FF1+) assumem o final da instrução quando se usa \n e não se mete o ;.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Todas as implementações com que trabalhei (IE6+, FF1+) assumem o final da instrução quando se usa \n e não se mete o ;.

No entanto não é boa prática.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, e eu até lhe dei na cabeça quanto a isso no msn :)

Quanto ao código dele, eu já o vi na totalidade e ele tem os spans todos, ele apenas alterou a estrutura da tabela, nada mais... Teoricamente não haveria problema dado que ele apenas alterou a representação da tabela mas manteve todos os elementos.

PS: Ele não foi suficientemente claro quanto aos conhecimentos dele..., ele é de Engenharia de Ambiente, portanto não esperem que ele saiba noções básicas como os pontos e virgulas, quando ele me mostrou o código falei-lhe nisso mas ele esqueceu-se de alterar, dado que o resultado final era o "pretendido", ele não pensou que pudesse estar "mal programado", o browser dele reconheceu sem ponto e virgulas como o djthyrax referiu.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ronrona que nem um gatinho.

O problema é q tinha uma função a mais q nunca acabava.

Tb alterei as virgulas

Obrigado a todos e ao Heckel :)

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