【问题标题】:Bootstrap modal to show pop-up once in 24 hours引导模式在 24 小时内显示一次弹出窗口
【发布时间】:2020-04-29 11:41:40
【问题描述】:

我在 SharePoint 网站上创建了一个 Bootstrap 模式弹出框。页面加载时出现弹出窗口。我还添加了设置 cookie 的代码以使弹出窗口只出现一次,但这不起作用。你能解决这个问题吗。以下是我的代码:

        <a href="#" type="button" data-toggle="modal" data-target="#myModal"><strong>Read more</strong></a> 

        <div class="modal fade" id="myModal" role="dialog" aria-hidden="true" style="display: none;"> 
        <div class="modal-dialog" style="width: 1000px;"> 
        <div class="modal-content"> 
        <div class="modal-body"> 

        TEXT HERE!

        <div class="modal-footer">
        <button class="btn btn-default" type="button" data-dismiss="modal">Close</button></div> 
        </div>
        </div>
        </div> 
        </div> 

        <script type="text/javascript">
        $(window).on('load',function(){
        $('#myModal').modal('show');
        });
        </script>
        </script>

        <script type="text/javascript">

        $(document).ready(function() {
        if ($.cookie('pop') == null) {
        $('#myModal').modal('show');
        $.cookie('pop', '1');
        }
        });</script>

【问题讨论】:

    标签: html sharepoint popup bootstrap-modal


    【解决方案1】:

    当用户访问网站时检查cookie是否已经存在,如果不存在则创建一个,持续1天--

    if (typeof $.cookie('modal_shown') === 'undefined'){ // no cookie
    
        $('#myModal').modal('show');
        $.cookie('modal_shown', 'yes', { expires: 1 }); // set cookie expiry to 1 day
    
    } else { // have cookie
        // do something
    }
    

    还要确保在代码中包含您正在使用的插件。

    【讨论】:

    • 嘿,如果您发现它有用,通常最好给一个答案投票(如果您不知道,如果知道,忘记我刚才说的话。)。 PS-乐于助人。 :)
    【解决方案2】:

    示例测试演示,您可以尝试一下。

    <!-- Modal -->
    <div class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLongTitle">Modal title</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">
                    ...
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                    <button type="button" class="btn btn-primary">Save changes</button>
                </div>
            </div>
        </div>
    </div>
    <script type="text/javascript"
            src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.min.js">
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
    <script type="text/javascript"
            src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.min.js">
    </script>
    <script type="text/javascript">
        $(function () {
            console.log($.cookie('pop'));
            if (!$.cookie('pop')) {
                $('#exampleModalLong').modal('show');
                $.cookie('pop', '1');
            }
        })
    
    </script>
    

    【讨论】:

    • 非常感谢!代码正在运行。在 jQuery 代码中,“1”是否表示天数或浏览器会话数?另外,如果我想检查 5 分钟或 30 分钟,我应该写什么?如果我关闭浏览器并再次打开页面,弹出窗口会再次出现。我猜这是根据浏览器会话发生的。
    猜你喜欢
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 2020-08-01
    相关资源
    最近更新 更多