Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每个用户只能打开一次Jquery对话框_Javascript_Jquery_Jquery Ui Dialog - Fatal编程技术网

Javascript 每个用户只能打开一次Jquery对话框

Javascript 每个用户只能打开一次Jquery对话框,javascript,jquery,jquery-ui-dialog,Javascript,Jquery,Jquery Ui Dialog,我在首页上使用jQueryUI模式对话框,并且我只想为每个用户显示一个对话框。这是我的代码: <script> $(function() { $( "#dialog-message" ).dialog({ modal: true, resizable: false, show: 'slide', buttons: { Ok: function() { $( this ).dialog(

我在首页上使用jQueryUI模式对话框,并且我只想为每个用户显示一个对话框。这是我的代码:

  <script>
  $(function() {
    $( "#dialog-message" ).dialog({
      modal: true,
      resizable: false,
      show: 'slide',
      buttons: {
        Ok: function() {
          $( this ).dialog( "close" );
        }
      }
    });
  });


  </script>



<div id="dialog-message" title="Attention">
  <p>Sample text here!</p>
</div>

$(函数(){
$(“#对话框消息”).dialog({
莫代尔:是的,
可调整大小:false,
放映:'幻灯片',
按钮:{
好的:函数(){
$(此).dialog(“关闭”);
}
}
});
});
示例文本在这里

非常感谢您的帮助!
谢谢

您必须检查用户是否访问了特定页面。您可以将状态保留在会话变量或cookie中。根据值,可以显示对话框

使用cookie的示例: 在html文件中包括jquery cookie,即

下面的代码将完成您的任务

$(document).ready(function()
{
 $(function() {
        if ($.cookie('page_visited') != 'yes')
        {
            $( "#dialog-message" ).dialog({
              modal: true,
              resizable: false,
              show: 'slide',
              buttons: {
                Ok: function() {
                  $( this ).dialog( "close" );
                }
              }
            });
            $.cookie('page_visited','yes')
        }
});
});                 
您可以将cookie过期期限设置为第三个参数
$。cookie('page_visted','yes',expiration_date)

使用(如前所述)或(取决于您必须支持的浏览器)

使用cookies的方法:

$(function() {
    if( document.cookie.indexOf( "runOnce" ) < 0 ) {
        $( "#dialog-message" ).dialog({
            modal: true,
            resizable: false,
            show: 'slide',
            buttons: {
                Ok: function() {
                    $( this ).dialog( "close" );
                    document.cookie = "runOnce=true; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/";
                }
            }
        });
    }
});
$(function() {
    if( ! localStorage.getItem( "runOnce" ) ) {
        $( "#dialog-message" ).dialog({
            modal: true,
            resizable: false,
            show: 'slide',
            buttons: {
                Ok: function() {
                    $( this ).dialog( "close" );
                    localStorage.setItem( "runOnce", true );
                }
            }
        });
    }
});

定义“用户”?每个会话一次,每页访问一次,每个IP一次,每个登录凭据一次?抱歉,我没有很好地指定它,每页访问一次@gpgekkoth模式设置代码在页面加载时只触发一次,因此它只打开一次。这意味着它已经在做你想让它做的事情了。我的意思是,我希望它只加载或显示一次,当用户再次访问页面时,对话框不应该出现。就像这样:,但我不知道如何将代码与我的代码相结合。我不知道如何,你能帮我吗?我对这些东西不熟悉。谢谢你的回复,非常感谢!您好,上面的代码似乎不起作用,我尝试用以下路径上传js文件:谢谢@gpgekko,我尝试了您关于cookies的第一个建议,效果非常好!我更喜欢使用cookies,因为localStorage与其他浏览器存在一些兼容性问题。竖起大拇指@gpgekko,上面的cookie方法适用于chrome,但我最近注意到它不适用于Mozilla和IE。它如何适用于不同的浏览器?我的错,上面的代码适用于不同的浏览器,我在不同的计算机上尝试过。可能是我浏览器上的缓存。非常感谢@gpgekko。使用localStorage的代码,当用户再次加载同一页面时,对话框不会按要求弹出。但是,它的文本已经在页面的主体中,因为我正在一个与对话框id相同的div中输入它。有解决办法吗?@R.S.K你是什么意思?在DOM中还是在页面上可以看到?