如何使带有用户消息的弹出窗口每天只出现一次?

问题描述 投票:0回答:2

大家好!我有这个弹出窗口可以识别SP 2013中的当前用户并向他们显示一条消息。我需要每天显示一次他们首先登录。任何帮助将不胜感激!这是代码:

<script>
     $(document).ready(function () {
         $("#popup").hide().fadeIn(500);
         $(".cover").fadeTo(500, 0.5);
         $("#close").on("click", function (e) {
            e.preventDefault();
            $("#popup").fadeOut(500);
            $(".cover").fadeOut(500);
        });
    });
</script>

<!--Get SharePoint User-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.SPServices/2014.02/jquery.SPServices-2014.02.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript">
    var loginName = "";
    var userid = _spPageContextInfo.userId;
    GetCurrentUser();
    function GetCurrentUser() {
        var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";
        var requestHeaders = { "accept" : "application/json;odata=verbose" };
        $.ajax({
        url : requestUri,
        contentType : "application/json;odata=verbose",
        headers : requestHeaders,
        success : onSuccess,
        error : onError
        });
    }
    function onSuccess(data, request) {
        var loginName = data.d.Title;
        //alert("Hello " + loginName);
    document.getElementById("userNameMessage").innerHTML = "hello" + "<b>" + loginName + "</b>";
    }
    function onError(error) {
        alert(error);
    }
</script>
javascript cookies sharepoint-2013
2个回答
0
投票

使用localStorage。使用date作为&布尔值。在OnSuccess函数内部检索localStorage键,并检查日期键是否与当前日期相同。如果相同且其值为true,则表示如果日期密钥和当前日期不相同,则显示消息,然后显示消息并将本地存储中的更新日期更新为当前日期


0
投票

您可以尝试以下逻辑。

 <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script type="text/javascript">
        $(function () {
            var key = 'DailyReminder';
            var reminderTimeKey = 'ReminderTimes';
            var ReminderDate = localStorage.getItem(key);
            if (!ReminderDate) {
                var d = new Date();
                d.setHours(0, 0, 0, 0);
                localStorage.setItem(key, d);
                localStorage.setItem(reminderTimeKey, 1);
                alert('hi');

            } else {
                var RemindTimes = localStorage.getItem(reminderTimeKey);
                var d = new Date();
                d.setHours(0, 0, 0, 0);
                if (RemindTimes < 1 || ReminderDate != d) {                    
                    localStorage.setItem(key, d);
                    localStorage.setItem(reminderTimeKey, 1);
                    alert('hi');
                }
            }
        })
    </script>
© www.soinside.com 2019 - 2024. All rights reserved.