不要在每个页面上打开模态

时间:2015-08-08 18:11:38

标签: javascript jquery html modal-dialog

我开发了这个代码,它运行良好。

问题是,即使我关闭它,它也会加载到每个页面上。有没有办法,也许是以cookie为基础,在一段时间内保持关闭?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css" type="text/css" media="all" />

<script type="text/javascript">                                         
$(document).ready(function() {                         
 $("#ModalMessage").dialog({modal: true, autoOpen : true});  
});
</script>

1 个答案:

答案 0 :(得分:0)

将此方法添加到HTML文件中。

var createCookie = function(name, value, days) {
    var expires;
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    }
    else {
        expires = "";
    }
    document.cookie = name + "=" + value + expires + "; path=/";
}

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) {
                c_end = document.cookie.length;
            }
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

然后,你可以在关闭对话框中使用这样的东西:

createCookie("closed", "1", 30);

在加载页面时:

$(document).ready(function() {                         
    if(getCookie("closed") != ""){
        //show my dialog box;
        $("#ModalMessage").dialog({modal: true, autoOpen : true}); 
    }
});

有关函数createCookiegetCookie here的更多信息。