[RESOLU] redirection javascript

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] redirection javascript

Re: redirection javascript

par nestor94 » 05 avr. 2022, 18:23

Je cloture ce sujet. En fait, j'ai bricolé un autre script qui répond mieux à mes attentes.
1) il gère aussi les jours.
2) la redirection se fait sans problème.
3) il ne se remet pas au début si on rafraichit la page.
<script type="text/javascript">
function RedirectionJavascript(){
document.location.href="https://www.farwest1850.eu/fin_inscri_concours_winchester.html"; }

function compte_a_rebours()
{
var compte_a_rebours = document.getElementById("compte_a_rebours");
var date_actuelle = new Date();
var date_evenement = new Date("Sep 30 12:00:00 2022");
var total_secondes = (date_evenement - date_actuelle) / 1000;
var prefixe = " ";
if (total_secondes < 0)
{
   RedirectionJavascript();
   prefixe = "INSCRIPTIONS CLOSES "; // On modifie le préfixe si la différence est négatif
    total_secondes = Math.abs(total_secondes); // On ne garde que la valeur absolue
}

if (total_secondes > 0)
{
// A faire, tous nos calculs
}
else // Si total_secondes == 0 (puisque l'on a prit sa valeur absolue)
{
   RedirectionJavascript();
}
var jours = Math.floor(total_secondes / (60 * 60 * 24));
var heures = Math.floor((total_secondes - (jours * 60 * 60 * 24)) / (60 * 60));
minutes = Math.floor((total_secondes - ((jours * 60 * 60 * 24 + heures * 60 * 60))) / 60);
secondes = Math.floor(total_secondes - ((jours * 60 * 60 * 24 + heures * 60 * 60 + minutes * 60)));
compte_a_rebours.innerHTML = prefixe + jours + ' Jours ' + heures + ' Heures ' + minutes + ' Minutes et ' + secondes + ' Secondes.';
actualisation = setTimeout("compte_a_rebours();", 1000);
var actualisation = setTimeout("compte_a_rebours();", 1000);
}
compte_a_rebours();
</script>


Re: redirection javascript

par or 1 » 04 avr. 2022, 20:50

il n'a pas cherché à corriger cela, juste dire comment faire les choses plus proprement. bon, en l’occurrence, définir et appeler une telle fonction est discutable.

pour la redirection au bon moment, il faut comprendre quand elle se fait avec le code actuel et l'adapter.

Re: redirection javascript

par nestor94 » 04 avr. 2022, 17:52

je suis désolé mais la redirection se fait toujours après une seconde.

Re: redirection javascript

par ynx » 04 avr. 2022, 12:16

A partir de ton premier code, appeler la fonction RedirectionJavascript après clearInterval :
function paddedFormat(num) {
  return num < 10 ? "0" + num : num; 
}

function startCountDown(duration, element) {
  let secondsRemaining = duration;
  let min = 10;
  let sec = 0;

  let countInterval = setInterval(function () {

    min = parseInt(secondsRemaining / 60);
    sec = parseInt(secondsRemaining % 60);

    element.textContent = `${paddedFormat(min)}:${paddedFormat(sec)}`;

    secondsRemaining = secondsRemaining - 1;
    if (secondsRemaining < 0) {
      clearInterval(countInterval);
      RedirectionJavascript();
    }

  }, 1000);
}

window.onload = function () {
  let time_minutes = 01; // Value in minutes
  let time_seconds = 00; // Value in seconds

  let duration = time_minutes * 60 + time_seconds;

  element = document.querySelector('#count-down-timer');
  element.textContent = `${paddedFormat(time_minutes)}:${paddedFormat(time_seconds)}`;

  startCountDown(--duration, element);
}

function RedirectionJavascript() {
  document.location.href="http://monsite.fr/page_html"; 
}

Re: redirection javascript

par nestor94 » 04 avr. 2022, 02:12

Bien, cela progresse car la redirection se fait .... mais après une seconde !
<script type="text/javascript">
function paddedFormat(num) {
    return num < 10 ? "0" + num : num; 
}

function startCountDown(duration, element) {

    let secondsRemaining = duration;
    let min = 10;
    let sec = 0;

    let countInterval = setInterval(function () {

        min = parseInt(secondsRemaining / 60);
        sec = parseInt(secondsRemaining % 60);

        element.textContent = `${paddedFormat(min)}:${paddedFormat(sec)}`;

        secondsRemaining = secondsRemaining - 1;
        if (secondsRemaining < 0) { clearInterval(countInterval) };
function RedirectionJavascript(){
document.location.href="https://www.monsite.fr/page.html"; }
RedirectionJavascript();

    }, 1000);
}

window.onload = function () {
    let time_minutes = 00; // Value in minutes
    let time_seconds = 10; // Value in seconds

    let duration = time_minutes * 60 + time_seconds;

    element = document.querySelector('#count-down-timer');
    element.textContent = `${paddedFormat(time_minutes)}:${paddedFormat(time_seconds)}`;

    startCountDown(--duration, element);
}
</script>

Re: redirection javascript

par or 1 » 03 avr. 2022, 14:29

il faut appeler la fonction, pas la définir.

Re: redirection javascript

par nestor94 » 03 avr. 2022, 12:25

Je dois avoir un soucis d'accolade
function paddedFormat(num) {
    return num < 10 ? "0" + num : num; 
}

function startCountDown(duration, element) {

    let secondsRemaining = duration;
    let min = 1;
    let sec = 0;

    let countInterval = setInterval(function () {

        min = parseInt(secondsRemaining / 60);
        sec = parseInt(secondsRemaining % 60);

        element.textContent = `${paddedFormat(min)}:${paddedFormat(sec)}`;

        secondsRemaining = secondsRemaining - 1;
        if (secondsRemaining < 0) { clearInterval(countInterval) }
function RedirectionJavascript(){
document.location.href="https://www.monsite.fr/page..html"; }
	

    }, 1000);
}

window.onload = function () {
    let time_minutes = 01; // Value in minutes
    let time_seconds = 00; // Value in seconds

    let duration = time_minutes * 60 + time_seconds;

    element = document.querySelector('#count-down-timer');
    element.textContent = `${paddedFormat(time_minutes)}:${paddedFormat(time_seconds)}`;

    startCountDown(--duration, element);

};

Re: redirection javascript

par ynx » 03 avr. 2022, 10:41

Bonjour,

La redirection ne se fait pas car la fonction RedirectionJavascript() n'est jamais appelée dans le script.

La fin du compte à rebours est détectée via la condition if (secondsRemaining < 0). Pour rediriger à la fin du compte à rebours, il faut donc appeler la méthode RedirectionJavascript dans le bloc de cette condition (après le clearInterval).

redirection javascript

par nestor94 » 02 avr. 2022, 22:05

C'est un petit script de compte à rebours qui fonctionne parfaitement. je souhaiterai qu'à la fin, il redirige vers une page html.
Et ça ne le fait pas :oops:
function paddedFormat(num) {
    return num < 10 ? "0" + num : num; 
}

function startCountDown(duration, element) {

    let secondsRemaining = duration;
    let min = 10;
    let sec = 0;

    let countInterval = setInterval(function () {

        min = parseInt(secondsRemaining / 60);
        sec = parseInt(secondsRemaining % 60);

        element.textContent = `${paddedFormat(min)}:${paddedFormat(sec)}`;

        secondsRemaining = secondsRemaining - 1;
        if (secondsRemaining < 0) { clearInterval(countInterval) };

    }, 1000);
}

window.onload = function () {
    let time_minutes = 01; // Value in minutes
    let time_seconds = 00; // Value in seconds

    let duration = time_minutes * 60 + time_seconds;

    element = document.querySelector('#count-down-timer');
    element.textContent = `${paddedFormat(time_minutes)}:${paddedFormat(time_seconds)}`;

    startCountDown(--duration, element);
}
function RedirectionJavascript(){
  document.location.href="http://monsite.fr/page_html"; 
};