3 votes

Faire en sorte que Javascript saute l'exécution lorsque l'utilisateur revient à la page principale

J'ai un diaporama JavaScript qui s'exécute lorsque la page web principale est visitée. Lorsque le visiteur clique sur un lien pour visiter une autre page (exemple : tarification) et revient à la page principale, le javascript exécute à nouveau le diaporama, ce qui peut " taper sur les nerfs " au bout d'un certain temps.

Existe-t-il un moyen de suivre un visiteur pendant la session afin que le diaporama de la page principale ne s'exécute que lors de sa première visite sur le site ?

Voici le code et le site https://www.softechsystems.com


    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="fadeslideshow.js"></script>

    <script type="text/javascript">
      var mygallery=new fadeSlideShow({
          wrapperid: "fadeshow1", //ID of blank DIV on page to house Slideshow
          dimensions: [741, 218], //width/height of gallery in pixels. Should reflect dimensions
          of largest image

      imagearray: [
          ["images_iob/admin_panel_3a.jpg", "", "admin panel", ""],
          ["images_iob/admin_panel_2a.jpg", "", "admin panel", ""],
          ["images_iob/admin_panel_1a.jpg", "", "admin panel", ""]],

      displaymode: {type:'auto', pause:1000, cycles:1, wraparound:false},
      persist: false, //remember last viewed slide and recall within same session?
      fadeduration: 500, //transition duration (milliseconds)
      descreveal: "ondemand",
      togglerid: "",
      oninit: function(){
             --this.setting.totalsteps;
       }
    })
</script>

Soyez indulgent avec moi, je suis un débutant peu informé... merci... Scott Sagnette

1voto

Travis J Points 28588

Il y a plusieurs façons d'aborder ce Scott, mais la plus simple est d'utiliser la fonction stockage local MDN .

sessionStorage n'est pas idéal ici, car il peut provoquer un effet trop fréquent pour les préférences de l'utilisateur. Par exemple, si l'utilisateur ouvre un nouvel onglet, il y aura une nouvelle session. Si l'utilisateur rouvre la page, c'est la même chose.

Par conséquent, si vous souhaitez que cela ne se produise que lors de la première visite, ou d'une visite relativement récente (par exemple au cours de la semaine écoulée), vous devez utiliser localStorage. Voici une bonne façon d'y parvenir :

(function(){
    var loadItem = localStorage.getItem('loaded');
    var daysToExpire = 7; // one week

    // If it was loaded in the past week, then this is 1 (true), if not 0 (false)
    var loaded = Date.now() - loadItem < 1000 * 60 * 60 * 24 * daysToExpire ? 1 : 0;

    if(!loaded) {
        var mygallery=new fadeSlideShow({ /*...*/ });
    }
})();
$(window).on("load", function () {
    $(function () {
        localStorage.setItem('loaded', Date.now());
    });
});

0voto

Shiko Points 1715

Vous pouvez utiliser sessionStorage pour définir une clé avec un tableau de pages visitées, comme ci-dessous :

// get value of key if exists, to check if page was visited
sessionStorage.getKey('visited');

// set the visited pages     
sessionStorage.setItem('visited', 'welcome_page,pricing_page');

Référence :
https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X