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

Sign in to follow this  
karwan

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

Recommended Posts

karwan

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

Share this post


Link to post
Share on other sites
djthyrax

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.


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
skin

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.


Our lives begin to end the day we become silent about things that matter - Martin Luther King

Share this post


Link to post
Share on other sites
djthyrax

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 ;.


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
skin

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.


Our lives begin to end the day we become silent about things that matter - Martin Luther King

Share this post


Link to post
Share on other sites
HecKel

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.

Share this post


Link to post
Share on other sites
karwan

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 :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.