javascript - 当用户返回主页时使 Javascript 跳过执行

标签 javascript html

我有一个在访问主网页时执行的 JavaScript 幻灯片放映。当访问者单击链接访问另一个页面(例如:定价)并返回主页时,javascript 会再次执行幻灯片放映,这会在一段时间后“让您感到紧张”。

有没有办法在 session 期间跟踪访问者,以便主页的幻灯片仅在他们第一次访问该站点时执行?

这是代码,网站是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>

请耐心等待,我是一个信息不多的新手..谢谢...Scott Sagnette

最佳答案

有几种方法可以解决这个 Scott,但最简单的方法是利用浏览器的 localStorage MDN .

sessionStorage 在这里不太理想,因为它会导致效果对于用户偏好而言过于频繁地发生。例如,如果用户打开一个新的标签页,就会有一个新的 session 。如果用户重新打开页面,情况相同。

因此,如果您希望它只在第一次访问时发生,或者相对第一次访问(例如在过去一周),您应该使用 localStorage。这是实现此目的的好方法:

(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());
    });
});

关于javascript - 当用户返回主页时使 Javascript 跳过执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60730877/

相关文章:

javascript - 从数字输入计算最佳拟合

javascript - IE Onblur 和焦点问题

html - 保留一个 ol 数和 overflow

javascript - Jquery Ui Accordion 在标题后创建图标标签

javascript - 在 JQuery Mobile 中显示页面时如何滚动到 anchor

javascript - 根据屏幕定位文本

javascript - 在继续之前等待异步函数的响应?

javascript - 如何在向每个数组添加键值时设置状态

javascript - 附加节点不会触发 JavaScript 事件

html - 不同之处。在网络服务器和媒体服务器之间?