Link Random

Lapachon

Mitglied
Hi!

Kann mir wer sagen wie ich dass machen kann? Also ich habe einen Link und wenn man auf den Link klickt soll man zufällig auf eine der drei Seiten kommen?

z.B. Link => test1.html oder test2.html oder test3.html

Weiss da wer eine Lösung?

LG

Lapachon
 
Zwei Möglichkeiten:

1) Den Link bereits mit einer zufälligen URL Ausgeben:
Code:
<script type="text/javascript">

aURLs = new Array('link1.html', 'link2.html', 'link3.html');
sLink = aURLs[Math.round(Math.random() * aURLs.length - 1)];

window.document.write('<a href="' + sLink + '">foo</a>');

</script>

2) Den Link eine Funktion aufrufen lassen, die zufällig zu einer Seite weiterleitet:
Code:
/* Head: */
function randLink()
{
    aURLs = new Array('link1.html', 'link2.html', 'link3.html');
    sLink = aURLs[Math.round(Math.random() * aURLs.length - 1)];

    window.location = sLink;
}

/* Body */
<a href="" onclick="randLink(); return false;">Foo</a>
 
Mir ist grad was aufgefallen. Er macht mir die Links immer der Reihe nach auf.
Das heisst, er macht immer zuerst link1.html dann link2.html und dann link3.html.

Er soll sie aber zufählig aufmachen. Z.B. ein User klickt auf den Link und es soll link3.html aufgehen nicht link1.html.

Hast du da eine Ahnung?
 
Das wird zufall sein - Fabians Funktion arbeitet einwandfrei...

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <script type="text/javascript">
  function randLink(){
    aURLs = new Array('link1.html', 'link2.html', 'link3.html');
    sLink = aURLs[Math.round(Math.random() * (aURLs.length-1))];
    alert('Link Nummer '+Math.round(Math.random() * (aURLs.length-1)));
   // window.location = sLink;
  }
  </script>
  </head>
<body>
  <a href="" onclick="randLink(); return false;">Foo</a>
</body>
</html>
Klick einfach den Link ein paar mal an und du wirst sehen, das des keine "feste" Reihenfolge gibt...
 
Also ein kleines Problem gibts da noch. Hin und wieder kommt eine Fehlerseite (undifined), was kanns da haben?

LG

Lapachon
 
Hi,

ich würde spontan sagen, der Fehler liegt hier:
PHP:
sLink = aURLs[Math.round(Math.random() * (aURLs.length-1))];
Auf diese Weise kann nämlich auch die Zahl 0 herauskommen; wenn Du keine Seite mit dem Namen "test0.html" hast, versuch es mal mit:
PHP:
sLink = aURLs[Math.round(Math.random() * (aURLs.length)+1)];

Gruß
 
Es ist also wichtig ob in dem link ein 1 und ein 0 vorkommen?

Ich habe 3 Links wo 1 und 0 vorkommen.

Wie muss ich es dann machen?
 
Nein, wenn Du einen Link mit 0 hast, sollte das erste Script auch gehen...

Es sei denn, die aURLS.length gibt einen falschen Wert zurück, aber das habe ich nicht überprüft - ist ja nicht mein Script .;)

Gruß
 

Neue Beiträge

Zurück