Zufallstext
eulestern
- javascript
0 Gunnar Bittersmann0 eulestern
0 rfb
Ich möchte gerne auf einer Website einen Zufallstext anzeigen lassen. Das ist noch nciht mein Problem. Mein Problem ist es, dass ich nicht weiß, wie man es hinbekommt, einen Zufallstext anzuzeigen, der nur einmal angezeigt wird. Wäre soetwas evt. mit Cookies möglich? Das Script welches den Zufallstext anzeigt sieht so aus:
<SCRIPT LANGUAGE="Javascript"><!--
function text() {
};
text = new text();
number = 0;
// textArray
text[number++] = "Zufallstext 1"
text[number++] = "Zufallstext 2"
text[number++] = "Zufallstext 3"
text[number++] = "Zufallstext 4"
text[number++] = "Zufallstext 5"
// Hier können weitere Texte angefügt werden...
document.write(text[Math.floor(Math.random() * number)]);
//--></SCRIPT>
Ich hoffe, dass jemand mir weiterhelfen kann,
eulestern
Hello out there!
<SCRIPT LANGUAGE="Javascript"><!--
Fehler! JavaScript-Bereiche in HTML definieren
Das 'language'-Attribut kommt in die Mülltonne, ebenso die Auskommentierung.
function text() {
};
text = new text();
?? Warum das? Warum nicht so:
var text = new Array();
Ich hoffe, dass jemand mir weiterhelfen kann,
Nein, ich weiß nicht, was dein Problem ist.
See ya up the road,
Gunnar
Also, ich möchte gerne auf einer Website ein Feld haben, in dem Witze stehen. Wenn ich nun z.B. 20 Witze hab und einen Aktualisieren Button da hab, möchte ich nicht, dass der Witz 1 kommt, dann der Witz 9, und dann wieder Witz 1.
Ich hoffe ihr hab das jetzt verstanden,
eulestern
Moin
Wenn du den
Aktualisieren Button
so gestaltest, dass nicht einfach die Seite neu geladen wird, sondern nur ein Teil des Seiteninhalts (der Witz) geändert wird
(Beispiel:
<p id="witz">Haha</p>
"Haha" lässt sich ändern mittels
document.getElementById("witz").firstChild.data="hoho";
in "hoho")
dann brauchst du bloß noch in einer weiteren Variablen zu speichern, welche Witze schon angezeigt wurden.
Gruß
rfb
Hallo rfb,
dann brauchst du bloß noch in einer weiteren Variablen zu speichern, »» welche Witze schon angezeigt wurden.
Ich kenne mich mit JavaScript nicht soo gut aus, und bitte dich, dass du mir mal ein Beispiel gibst, dass genau das macht. (müssen ja auch nur zwei Sachen sein) Den Rest würde ich dann auch selber hinbekommen.
THX im Vorraus
eulestern
Moin
so könnte sowas aussehen (statt eines Buttons einfach auf den angezeigten Witz klicken):
<html>
<head>
<title>Ein Witz</title>
<script type="text/javascript">
var witz={
liste:["kam ein ...","treffen sich ...","2 Informatiker ..","bei Microsoft ..."],
auswahl:function() {
var w=Math.floor(Math.random()*witz.liste.length);
var ww=witz.liste[w];
if (witz.liste.length>1) witz.liste.splice(w,1);
var witzplatz=document.getElementById("witzplatz");
if (witzplatz) {
if (!witzplatz.firstChild) witzplatz.appendChild(document.createTextNode(ww));
else witzplatz.firstChild.data=ww;
}
},
init:function() {
var witzplatz=document.getElementById("witzplatz")
if (witzplatz) witzplatz.onclick=witz.auswahl;
}
}
window.onload=function() {
witz.init();
witz.auswahl();
}
</script>
</head>
<body>
<div id="witzplatz"></div>
</body>
</html>
Gruß
rfb
Hello out there!
[…] möchte ich nicht, dass der Witz 1 kommt, dann der Witz 9, und dann wieder Witz 1.
Ich hoffe ihr hab das jetzt verstanden,
Hast du verstanden, was „Zufall“ bedeutet?
Der Zufall hat kein Gedächtnis. Dass nach Witz 1 nochmal Witz 1 kommt ist genau so wahrscheinlich wie dass danach Witz 9 kommt.
Du möchtest also nicht bei jeder Anzeige neu „würfeln“, sondern beim ersten „Würfeln“ die Reihenfolge deiner bspw. 20 Witze festlegen. Diese einmal „ausgewürfelte“ Reihenfolge arbeitest du dann ab.
See ya up the road,
Gunnar
Moin
was genau meinst du mit
der nur einmal angezeigt wird.
?
Gruß
rfb