Page aléatoire

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
jeanyveso
Messages : 3
Enregistré le : 19 avr. 2021, 01:31

Page aléatoire

Message par jeanyveso » 19 avr. 2021, 01:35

Bonjour.
Je ne connais pas grand chose au développement.
Avec mes élèves, dans le cadre d'un projet, on cherche à afficher une vidéo aléatoire grâce à un qrcode.
J'ai récupéré ce code sur internet :

Code : Tout sélectionner

<HEAD>

<SCRIPT Language="Javascript">
//<!--
function PageRand()
{
Url = new Array;
Url[0] = "https://..../video1.mp4";
Url[1] = "https://..../video2.mp4";
Url[2] = "https://..../video3.mp4";
Url[3] = "https://..../video4.mp4";
Url[4] = "https://..../video5.mp4";
Url[5] = "https://..../video6.mp4";
Url[6] = "https://..../video7.mp4";

Choice = Math.round(Math.random() * (Url.length+1));
window.open(Url[Choice],'_blank');

}
//-->

</SCRIPT>
</HEAD>

<BODY>
<A Href="#" onClick="PageRand(); return(false)">Voir</A>
</BODY>

Je rencontre deux problèmes :

- parfois, le lien amène sur une page blanche
- lorsqu'on arrive sur la page grâce au qrcode, on doit à nouveau cliquer sur "voir". Peut-on afficher directement la vidéo ?

Merci d'avance pour votre aide.

Bonne nuit.

Avatar du membre
webmaster
Administrateur du site
Messages : 396
Enregistré le : 28 févr. 2017, 15:19

Re: Page aléatoire

Message par webmaster » 19 avr. 2021, 10:19

Bonjour,

Voici quelques pistes.
Le tirage aléatoire doit correspondre aux valeurs des clés du tableau entre 0 et length+1
Dans votre cas, je pense qu'il va plus haut que length avec le round.

Un exemple de fonction de tirage ici (avec vérification des sorties et de l'équilibre du tirage) :
https://www.toutjavascript.com/livre/sc ... url=random

Pour lancer directement le chargement de la vidéo, il suffit d'appeler le script dans <body> :
<script>
PageRand();
</script>

Comme le navigateur détectera un popup, il risque de le bloquer la premiere fois. Il faudra sans doute l'autoriser au premier chargement.
TJS : 20 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

jeanyveso
Messages : 3
Enregistré le : 19 avr. 2021, 01:31

Re: Page aléatoire

Message par jeanyveso » 19 avr. 2021, 10:46

Merci pour votre réponse.

est-ce qu'il est possible d'annuler l'ouverture d'une nouvelle fenêtre pour lire la vidéo ? Faire simplement une redirection.

Je n'ai pas bien compris la valeur length.
Que dois-je mettre po)ur éviter d'avoir une valeur vide ?
Merci d'avance.

Avatar du membre
webmaster
Administrateur du site
Messages : 396
Enregistré le : 28 févr. 2017, 15:19

Re: Page aléatoire

Message par webmaster » 19 avr. 2021, 13:47

La fonction retourne un nombre entre 1 et n

Code : Tout sélectionner

        function getTirageDe(n) {
          return Math.floor(n * Math.random() + 1);
        }
Il suffit donc de chercher une valeur entre 0 et length

Code : Tout sélectionner

var tirage=getTirageDe(Url.length) - 1
Pour remplacer l'url, on écrit :

Code : Tout sélectionner

window.location="nouvelle adresse"
TJS : 20 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

jeanyveso
Messages : 3
Enregistré le : 19 avr. 2021, 01:31

Re: Page aléatoire

Message par jeanyveso » 20 avr. 2021, 08:54

Merci pour votre aide. Je vais regarder ça !
Bonne journée.

Répondre