js怎么设置 只执行一次 其余执行另一个?分多

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js怎么设置 只执行一次 其余执行另一个?分多相关的知识,希望对你有一定的参考价值。

需求,弹窗(弹窗代码我有)
打开的时候第一次弹a.html
其余一天时间内,不管怎么刷新都只弹另一个页面b.html,

3种方法:

1、写cookie,用户第一次访问时弹出a.html(即没有cookie或过期),同时写入一个cookie,过期时间为1天,1天内判断有改cookie时弹出b.html;

2、写localStroage,方式如上;

3、针对ip或uid记录到后端数据库;

1优点是方便,缺点是手动清空cookie或浏览器关闭后自动清空会导致失效;
2优点是不易清除(至少对于普通用户来说),缺点是针对ie要写userStroage方法;
3优点不能清除,缺点只能针对ip或uid记录,需要后端支持追问

能不能给一个完整的方法?
根据cookie的方法,您能不能提供一下代码?
谢谢您!!!

追答var setCookie = function(name)
        var _now = new Date();
        //设置过期时间为1天
        _now.setDate(_now.getDate() + 1);
        document.cookie = name + "=1; expires=" + _now.toGMTString()+";";
    
    ,getCookie = function(name)
        //寻找cookie
    var _name = \' \' + name + \'=\';
        var _cookie = document.cookie.indexOf(_name);
        var _end, _result = \'\';
        if(_cookie != -1)
            _cookie += _name.length;
            _end = document.cookie.indexOf(";",_cookie);
            _result = (document.cookie.substring(_cookie,_end));
        
    return _result;
    
    ,showPop = function()
        if(!!getCookie(\'pop\'))
            //有cookie,设定弹出url为b.html
            var _url = \'b.html\';
    else
          //否则,设置cookie,设定弹出为a.html
        setCookie(\'pop\');
        var _url = \'a.html\';
    
    //你的弹层代码,传入需要弹出的url地址
    popShow(_url);
    ;

参考技术A 参考例子如下:
function bb()

if(typeof(window.isCancel)=="undefined")
alert("你好");
//还可以执行其他事务,只要所有自定义事件执行完之后加上下面这句即可。
window.isCancel=true;

以上是关于js怎么设置 只执行一次 其余执行另一个?分多的主要内容,如果未能解决你的问题,请参考以下文章

怎么用cookie控制一个IP只执行一次JS代码

js scroll 滚动连续多次触发事件怎么只执行一次?

一段js代码怎么只运行一次

这段JS代码如何让它只执行一次就停止

sql server中怎么把一个表的数据全部插入到另一个表,每次1000条的插入,一次执行,不要在存储过程里改的

cookie控制一个IP 24小时只执行一次JS退出弹窗代码