如果用户访问目录中的n个页面,则打开弹出窗口

时间:2015-12-02 16:16:38

标签: javascript jquery

我在网站上有很多食谱,它们位于食谱目录中,例如:

./recipes/muffin
./recipes/cake
./recipes/bread

我已经有了一些计算会话的代码。当用户打开包含第三个配方的页面时,如何触发?我也需要在这个动作中打开弹出窗口。

// Open it once per session, after some time, show overlay & disable scroll in desktop & mobile devices
if (!sessionStorage.alreadyClicked) {
    setTimeout(function () {
        $('.newsletter_popup').show();
    }, 1000);
    sessionStorage.alreadyClicked = 1;
}

1 个答案:

答案 0 :(得分:3)

在访问过的每个食谱页面上,您都可以增加一个计数器:

sessionStorage.recipesViewed = (sessionStorage.recipesViewed || 0) + 1;

然后您可以检查该值以查看这是否是此会话中查看的第三个配方:

if (!sessionStorage.alreadyClicked || sessionStorage.recipesViewed == 3) {
  setTimeout(function () {
    $('.newsletter_popup').show();
  }, 1000);
  sessionStorage.alreadyClicked = 1;
}

如果您需要单独计算每个配方(以便刷新同一页面三次不会使弹出窗口出现),您需要通过将页面的URL与视图计数器一起存储来使逻辑更复杂一些并保持一个独特的总数。