Help Script JS pour redirection aléatoire

sebastiez Messages postés 28 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 12 juillet 2019 - 9 avril 2007 à 15:55
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 - 11 avril 2007 à 17:53
Bonjour, je ne sais pas si je me suis positionné sur le bon thème pour poster mon message mais bon... voici le script que je voudrais mettre en place mais une erreur
s'y est involontairement dissimuler car il ne fonctionne pas.

J'en appelle donc aux connaisseurs pour m'aider dans la correction de ce script.

<tt style="font-size: 9pt;">
<script type="text/javascript">

function LienAuHasard()

{

Url = new Array;

Url[0] = "http://www.site1.com";

Url[1] = "http://www.site2.be";

Url[2] = "http://www.site3.nu";

Url[3] = "http://www.site4.fr";

ChoixLien = Math.round(Math.random() * (Url.length+3));

window.open(Url[ChoixLien],'_self');

}

</script>

<script type="text/javascript">location.href =LienAuHasard();</script>

</tt>

Je rappelle qu'il s'agit d'un script pour effectuer une redirection automatique aléatoire.
Merci pour votre aide. SE B

18 réponses

stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
9 avril 2007 à 16:49
Bonjour,
Tu dois échapper tes slashs

<hr /><hr />STFOU
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 avril 2007 à 16:53
Bonjour,

    remarques :
       °°°     ChoixLien = Math.round(Math.random() * (Url.length)+3);
      
                pourquoi + 3 ?  on peut donc obtenir 5 par exemple...
       °°°     <tt>location.href =LienAuHasard();
           pourquoi location.href=fonction ?

</tt>             <tt><script type="text/javascript">LienAuHasard();</script> </tt>

             tout simplement non ?
             ou alors pas de window.open dans la function,
                y faire un return qui serait exploité.

<hr />


Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 avril 2007 à 16:55
salut stfou...
    les slashs (/) c'est correct,
    les anti slashs (\) pourraient poser problème.
<hr />


Cordialement        Bul     [mon Site]     [M'écrire]



<hr />
0
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
9 avril 2007 à 16:56
J'améliore ton script :

function LienAuHasard()
{
var Url=["http:\/\/www.site1.com","http:\/\/www.site2.be","http:/\/www.site3.nu","http:\/\/www.site4.fr"];
window.open(Url[Math.round(Math.random()*Url.length)],"_self");
}

<hr /><hr />STFOU
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
9 avril 2007 à 17:00
Salut à toi aussi bultez, pourquoi un problème ? quel anti-slashs ?
Cependant, je suis d'accord avec toi sur le location.href, soit il fait directement :
location.href=Url[Math.round(Math.random()*Url.length)],"_self");
Ou soit il garde sa fonction.

<hr /><hr />STFOU
0
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
9 avril 2007 à 17:03
Pardon, oublié d'enlever le ,"_self") après le copier-coller

<hr /><hr />STFOU
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 avril 2007 à 18:40
salut stfou... c'est toi qui disais : Tu dois échapper tes slashs
or                             var tmp="http://www..../toot/titi/...."    ça baigne... les slashs /
par contre essayes var tmp="d:\utilitaires\toto\titi....";     ça va moins bien... les anti slashs \



<hr />



Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
0
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
9 avril 2007 à 18:57
Et bin on échappe les anti-slashs  : "d:\\utilitaires\\toto\\titi";

<hr /><hr />STFOU
0
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
9 avril 2007 à 18:58
Et puis il n'utilise pas d'anti-slashs dans son code...

<hr /><hr />STFOU
0
sebastiez Messages postés 28 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 12 juillet 2019
9 avril 2007 à 19:17
Merci à stfou et bultez de m'aider et de vous être interressé à mon problème.
Voici donc les modifications que j'ai apporté à ce scripte suite à vos bons conseils :

<script>
function LienAuHasard()
{
var Url=["http:\/\/www.site1.com","http:\/\/www.site2.be","http:\/\/www.site3.nu","http:\/\/www.site4.fr"];
window.open(Url[Math.round(Math.random()*Url.length)],"_self");
}
</script>
<script type="text/javascript">LienAuHasard();</script>

Le script fonction. J'arrive à obtenir une redirection vers les URLs inscrites mais... (il y aura toujours 1 mais)
Aléatoirement, je tombe sur l'url "http:///" ou  IE me marque "unefined"
J'ai essayé avec http:\/\/www. et http:\/\/www. mais ca n'a rien changé.

J'ai rajouté ,"_self") pour la redirection s'effectue sur la même page.
0
sebastiez Messages postés 28 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 12 juillet 2019
9 avril 2007 à 19:21
Pardon je voulais dire :
J'ai essayé avec http:\/\/www. et http://www. mais ca n'a rien changé.
0
sebastiez Messages postés 28 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 12 juillet 2019
9 avril 2007 à 19:29
Ca marche aussi avec location.href

<script>
function LienAuHasard()
{
var Url=["http://www.site1.com","http://www.site2.be","http://www.site3.nu","http://www.site4.fr"];
location.href=Url[Math.round(Math.random()*Url.length)];
}
</script>
<script type="text/javascript">LienAuHasard();</script>

Mais ca ne resolut pas le problème de l'url "http:///" ou  du "undefined"
0
sebastiez Messages postés 28 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 12 juillet 2019
9 avril 2007 à 19:55
Je suis revenu à l'ancienne formule du script (pour voir) :

<script>
function LienAuHasard()
{
    Url = new Array;
    Url[0] = "http://www.google.fr";
    Url[1] = "http://www.yahoo.fr";
    Url[2] = "http://www.javascriptfr.com";
    Url[3] = "http://www.google.com";

    location.href=Url[Math.round(Math.random()*Url.length)];
}
</script>
<script type="text/javascript">LienAuHasard();</script>

J'ai essayé aussi avec FireFox (v2) pour voir si le problème viendrais d'IE mais non.
J'ai également changé les urls contre des urls valides. le http:/// et le undefined aurais pu venir de là.
Oui pour le http:/// car il n'y en a plus et non pour le undefined. A son affichage, la console d'erreurs de Firefox m'affiche ce message :
Erreur : uncaught exception: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIDOMLocation.href]"  nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)"  location: "JS frame :: file:///C:/TEST/index.htm :: LienAuHasard :: line 10"  data: no]

J'y comprend rien mais j'espère que ca vous aidera.
0
sebastiez Messages postés 28 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 12 juillet 2019
9 avril 2007 à 20:15
J'ai trouvé la solution !!! (enfin)
Grace à un autre scripte pour des liens aléatoires et à ce que j'ai appris dans vos conseils, j'ai pu le modifier et sa marche impek.

Voici donc le résultat :
<hr size="2" width="100%" /><script>
function variable(url)
   {    
   window.location=url;  
   }  
   function LienAuHasard()  
   {    
   var a;    
   a = 1+Math.round(Math.random()*3);    
   if (a==1)      
   variable("http://www.google.fr");    
   if (a==2)      
   variable("http://www.google.com");    
   if (a==3)      
   variable("http://www.yahoo.fr");    
   if (a==4)      
   variable("http://www.javascriptfr.com");
   }

</script>
<script type="text/javascript">LienAuHasard();</script>
<hr size="2" width="100%" />Merci pour votre aide. Sans cela, je n'y serai pas arrivé
0
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
9 avril 2007 à 20:45
j'ai rajouté "_self " pourque la redirection s'effectue dans la meme page
Quoi ? window.open() c'est pour ouvrir une fenetre ! location.href permet de changer l'url de la page.
Ensuite, chez moi, le script, tout baigne.
Et pour ton dernier script, mieux vaut faire un switch, et si tous tes sites commencent par http://www., alleger le code  :

function GO(url){window.location.href="http:\/\/www."+url}
function lienauhasard()
{
var a=Math.round(Math.random()*3);
switch(a)
{
case0 : GO("site1.fr") break;
case1 : GO("site2.com") break;
case2 : GO("site3.fr") break;
case3 : GO("site4.com") break; 
}
}

<hr /><hr />STFOU
0
sebastiez Messages postés 28 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 12 juillet 2019
9 avril 2007 à 21:10
Merci stfou !!!
En faite mes liens seront remplacés par  <?echo "$index1";  ?>
avec un <?PHPrequire 'PHP/url.php';?> à la ligne 1 de ma page.
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
11 avril 2007 à 17:30
Bonjour,

Regarde çà, je pense que çà pourrait t'aider :
http://www.javascriptfr.com/codes/OUVRIR-POPUPS-HASARD-TAILLE-PLACEMENT-BARRE-MENU-OU_38258.aspx
C'est une source qui te permet d'OUVRIR DES POPUPS (ou fenêtres) AU HASARD.
Cette source choisi aléatoirement, la TAILLE, le PLACEMENT, la présence ou non d'une BARRE DE MENU...

J'espère que cette source te sera utile.
En tout cas bonne chance.
Nico
0
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
11 avril 2007 à 17:53
Bonjour nico.
 --Cette source choisi aléatoirement, la TAILLE, le PLACEMENT, la présence ou non d'une BARRE DE MENU...
>> ... mais pas l'url ?

<hr /><hr />STFOU
0
Rejoignez-nous