每x页加载一次javascript,例如,每3页

每x页加载一次javascript,例如,每3页,javascript,Javascript,我确信这个问题以前已经得到了回答,但我的搜索结果是空的 我有一个简单的jQuery函数(在页面向下滚动后,它在一个框中滑动)。它很好用 但是,如何设置cookies或其他方法,使其在第一次页面加载时执行,然后在会话的每第三次页面加载时执行 像这样的小片段应该适合您 (函数(){ //从本地存储获取倒计时 var countdown=window.localStorage.getItem('countdown'); //如果未设置倒计时,则它将为空` //如果运行几次,它将为'0'` //无论哪种

我确信这个问题以前已经得到了回答,但我的搜索结果是空的

我有一个简单的jQuery函数(在页面向下滚动后,它在一个框中滑动)。它很好用


但是,如何设置cookies或其他方法,使其在第一次页面加载时执行,然后在会话的每第三次页面加载时执行

像这样的小片段应该适合您

(函数(){
//从本地存储获取倒计时
var countdown=window.localStorage.getItem('countdown');
//如果未设置倒计时,则它将为空`
//如果运行几次,它将为'0'`
//无论哪种方式,我们都会重置倒计时并运行该函数
如果(!倒计时){
倒计时=3;
//运行函数
}
//更新倒计时
window.localStorage.setItem('countdown',countdown-1);
})();

您可以将窗口加载的计数存储在上,以便每次重新加载时不会丢失数据。当选项卡关闭时,数据将被清除。如果希望在会话结束时数据不会过期,则应使用;两者都有相同的实现

window.onload = doSomething;

function doSomething() {
    let count =  sessionStorage.getItem('noOfPageLoads');
    if( count ) {  //if count is not null, increment it
        count++;
        sessionStorage.setItem('noOfPageLoads', count);  //update the local storage
    }
    else {   //if count is null, it's the first load, so put it in the local storage
        count = 0;
        sessionStorage.setItem('noOfPageLoads', count);
    }
    console.log('noOfPageLoads = '+ count)
    if( count===0 || count===3 ) {
        console.log('do something now');
        //do what you want here
    }
}

这两个答案都很有启发性(我的javascript技能处于拼凑水平)。如果它对某人有帮助,即使问题是javascript解决方案,我也意识到可能还有PHP解决方案

这也起了作用:

<?php   //Slide-in ad will show every x pages
$slide_ad_frequency=3;
session_start();
//increase the already-set counter by 1 or initiate the counter with a value of 1
if( isset( $_SESSION['counter'] ) )
{
   $_SESSION['counter'] += 1;
}
else
{
   $_SESSION['counter'] = 1;
}
    //If counter equals the ad frequency setting
if($_SESSION['counter'] % $slide_ad_frequency == 0) : ?>

    ... Code to execute ...

<?php endif ?>

... 要执行的代码。。。

我不会为此使用cookies;我会使用更现代的东西,比如本地存储。试着用它做点什么,如果你不能让它工作,把你尝试的代码编辑成问题,我们会帮助你。你为什么不设置一个cookie,然后增加它,并尝试将它除以3,然后根据这个结果启动函数?cookie可以工作;本地存储可以正常工作。我会考虑根据时间来发射JS(如果时间超过某个阈值)。