Evertjan. said:
Michael wrote on 25 sep 2003 in comp.lang.javascript:
Evertjan. said:
Michael wrote on 22 sep 2003 in comp.lang.javascript:
I know how to display random jokes or sayings. But only if I reload
the page does the script select a new saying. How can I click on
the saying and have it load a new one in its place.
<script>
j=new Array
j[0]="haha"
j[1]="next joke"
j[2]="again"
//....
j[20]="last joke"
</script>
<div onclick="this.innerHTML=j[Math.floor(Math.random()*21)]">
Click here for jokes
</div>
This did not quite work. This is just about what I wanted. I keep
geting a message that says undefined. I think that the part after
innerHTML= has to be in the script too.
It works all right, tested on IE6, but you have to fill in all 20 texts,
otherwise you get that "undefined"
Or you could do Math.random()*3
Sorry. But for some reason, I could not quite get it to work. So I
messed around until I got it to work. Here is what I came up with.
<script>
j=new Array(2)
index = Math.floor(Math.random() * j.length) + 1;
</script>
<div onclick="this.innerHTML=index">Click Here</div>
Now I have another question. I just wanted to take it a step at a
time.
What I really would like to do, is to put each joke into seperate .js
files. Otherwise, since I have hundreds of them it would bog down the
page with too much data and take too long to load into the browser. I
read at
www.netmechanic.com where if it takes more than 8 seconds to
load the page then most people will just get bored and go elsewhere.
I have lots of random content and I do not like it when some one has
to reload the whole page to see a different joke or whatever because
it increments the counter. So I thought it would be more convenient if
the person could just click on the joke TEXT and have it display a new
joke each time.
But not just 1 time. Over and over again until they got tired of
reading jokes.
I tried it with an iframe and then just put onclick=location.reload()
in the body tag of the html file in the iframe. That way each time I
clicked on the joke itself the iframe subpage reloaded and displayed a
new joke from the array. It worked great, except that some of the
jokes were larger than the iframe window and then I could not see the
whole thing. I placed each joke in a table, and then gave it a height
and width. But I did not know how to transfer the height and with of
the table in the iframe to the iframe height and width. You know so
that if the table with the joke became larger or smaller the iframe
would resize as needed.
So anyway, I thought there must be an easier way.