Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Temporiser l'accès à une page Web

4 réponses
Avatar
Yves On Line
Bonjour,
Sur un site où des visiteurs se forment en navigant sur une série de x
diapositives (une diapo = une page web), j'interdit que les visiteurs
trichent et passent en quelques secondes l'ensemble des diapositives en
affichant le bouton 'suivant' dans une iframe (dont le nom est 'avancer') au
bout de 10 secondes (voir javascript ci dessous).
J'ai 2 questions (je suis nul en javascript) :
1/ Pourquoi le documents.frames etc. ne fonctionne-t-il pas avec FireFox ?
y-a-t-il une façon d'écrire le script autrement pour que cela fonctionne ?
2/ Ce serait sans doute plus simple que le javascript, au lieu d'aller me
placer le bouton suivant dans une iframe, me l'affiche dans la même page
seulement au bout des 10 secondes. C'est sans doute possible mais comment
faire cela simplement ?
Merci d'avance,
Yves

<!--
function redirect()
{
document.frames['avancer'].location.href='avance.php?<?php echo
"ecran=$ecran&module=$module&anti_triche=$anti_triche";?>'
}
setTimeout('redirect()',10000); // delai en millisecondes - soit ici 10
secondes.
-->

4 réponses

Avatar
CrazyCat
Yves On Line wrote:
1/ Pourquoi le documents.frames etc. ne fonctionne-t-il pas avec FireFox ?
y-a-t-il une façon d'écrire le script autrement pour que cela fonctionne ?


il vaudrait peut-être mieux utiliser parent.document.avancer...

2/ Ce serait sans doute plus simple que le javascript, au lieu d'aller me
placer le bouton suivant dans une iframe, me l'affiche dans la même page
seulement au bout des 10 secondes. C'est sans doute possible mais comment
faire cela simplement ?


un peu de CSS et de JS:

dans ta CSS:
input.cache {
vibility: hidden;
}

ton bouton sera donc:
<input type="button" class="cache" id="btn_next" value="suivant">

Pour ton javascript, avec le onload="settimeout('next()', 10000);"
function next() {
bouton = document.getElementById("btn_next");
bouton.style.visibility = 'visible';
}

Cela devrait normalement t'afficher le bouton 10s après le chargement de
la page.

N.B.: je ne suis pas sur que le visibility fonctionne avec tous les
navigateurs, en cas de problèmes utilise l'attribut display avec les
options none et inline

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net

Avatar
Yves On Line
un peu de CSS et de JS:

dans ta CSS:
input.cache {
vibility: hidden;
}

ton bouton sera donc:
<input type="button" class="cache" id="btn_next" value="suivant">

Pour ton javascript, avec le onload="settimeout('next()', 10000);"
function next() {
bouton = document.getElementById("btn_next");
bouton.style.visibility = 'visible';
}

Cela devrait normalement t'afficher le bouton 10s après le chargement de
la page.


Merci beaucoup cela marche parfaitement et c'est beaucoup plus souple que
l'iframe ! Cela me donne envie de me mettre au javascript un jour !
L'attribut "hidden" bloque l'action du bouton sur tous les navigateurs
(histoire qu'il ne suffise pas de cliquer dans le vide pour avancer) ??
Yves
ps : si qqun veut utiliser ce post un jour : une petite faute de frappe dans
le css ci-dessus : ce n'est pas "vibility: hidden;" mais "visibility:
hidden;".
J'ai cherché 10 secondes pourquoi cela ne fonctionnait pas :-)

Avatar
CrazyCat
Yves On Line wrote:
Merci beaucoup cela marche parfaitement et c'est beaucoup plus souple que
l'iframe ! Cela me donne envie de me mettre au javascript un jour !
L'attribut "hidden" bloque l'action du bouton sur tous les navigateurs
(histoire qu'il ne suffise pas de cliquer dans le vide pour avancer) ??


Merci de la précision :)

ps : si qqun veut utiliser ce post un jour : une petite faute de frappe dans
le css ci-dessus : ce n'est pas "vibility: hidden;" mais "visibility:
hidden;".
J'ai cherché 10 secondes pourquoi cela ne fonctionnait pas :-)


Toutes mes excuses, je n'ai même pas vu ma faute à la première relecture.

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net

Avatar
Yves On Line
Merci beaucoup cela marche parfaitement et c'est beaucoup plus souple que
l'iframe ! Cela me donne envie de me mettre au javascript un jour !
L'attribut "hidden" bloque l'action du bouton sur tous les navigateurs
(histoire qu'il ne suffise pas de cliquer dans le vide pour avancer) ??


Merci de la précision :)


Ce n'était pas une précision...mais une question !

Par ailleurs phénomène assez rigolo : j'ai testé sur FireFox : cela
fonctionne aussi.
Cependant j'ai trouvé chez mon client un ordinateur en décadence sur lequel
"rien ne marche" (y compris internet explorer). Et bien sous le FireFox de
cette machine, le bouton est visible immédiatement !
Le contournement de cette méthode doit donc être assez simple ? par exemple
en faisant un paramétrage (lequel?) pour refuser les feuilles de style ??
Yves