Javascript trouble

Spike

Posts: 2,122   +0
I was just in a chat on WinMX, in which I was given the following script. He couldn't get it working, and I was also puzzled.

The trouble is, that now it's bugging me!

Can somewone tell me where this script is wrong?

Code:
<script language="JavaScript"> 

var counter

function looper()

{

counter = Math.round("Math.random()"*10)

alert("MICROSOFT SUCK! get out of this one billy!")

}

setTimeout("looper()",counter)

</script>

Now, I'm not the best at scripting. Not by a long shot, but I can't help but feel that theres not too much wrong with the above. I might be wrong though.
 
Thanks.

The script still only gives me one alert and nothing else though. Given the alert message, I'm guessing it's supposed to do more. lol.

Would also help if my .js files weren't opening in dreamweaver. lol.
 
You're supposed to get only one alert with that script. SetTimeout is a timer, not a loop function. If you want loops, use for or while functions. For example, an infinite loop could be
Code:
while (1<2)
{
   alert("How many times can you click this?")
}
 
Thanks. I have it now, although I don't know why!!!

Code:
<HTML>
<head>
<title>
test
</title> 

<script language="JavaScript"> 

var counter

function looper()

{

counter=Math.round(Math.random()*10)

alert("MICROSOFT SUCK! get out of this one billy!")

setTimeout("looper()",counter)

}


setTimeout("looper()",counter)

</script> 

</head>

This seems to be an infinite loop. Removing either or both of the setTimeout lines renders the script useless. I have no idea why this works, but it does on my machine.

Any pointers???
 
Oh, my bad, setTimeout does indeed loop until the script is unloaded. Your last script is an infinite loop because once looper() is called, it calls itself with that setTimeout inside the function.
 
Thanks for clearing that up Mict.

The one thing that's still bugging me though, is why is it that I need BOTH setTimeout lines for the script to do anything at all?

Oh, BTW, The same guy just gave me this to look at. what a joker. lol

Code:
<html>

<head>
<script language="javascript">
while (1<2)
{
javascript:window.open('http://www.google.com')
}
</script>
<title>:)</title>
</head>

<body>

</body>

</html>

There's a couple of people I would be more than happy to trap with that. lol
 
Back