如何在请求之间保持jQuery UI对话状态?

时间:2011-09-20 11:11:10

标签: javascript jquery asp.net-mvc jquery-ui jquery-ui-dialog

我有一个ASP.NET MVC Web应用程序。应用程序可以通过“远程控制”进行管理,该远程控制是jQuery UI dialog,仅在具有足够权限的用户登录并单击“显示远程控制”按钮时才会显示。 (显然,对话框的HTML代码不存在。)

当用户点击网站上的链接时,此对话框将自行关闭 我希望对话框“记住”它是打开的,并在这种情况下自动打开。

最简单,最跨浏览器兼容的方法是什么?
(我们现在假设我不想关注古老的浏览器,使用它的人会使用新的浏览器。)

以下是初始化对话框的代码。

$(document).ready(function () {
    $("#remote-control").dialog({
        autoOpen: false,
        show: "explode",
        hide: "explode",
        title: "Távirányító",
        minWidth: 220,
        maxWidth: 260,
        width: 190,
        height: 300,
        maxHeight: 500,
        position: [50, 100]
    });

    $("#remote-control-opener").click(function () {
        $("#remote-control").dialog("open");
        return false;
    });
});

提前感谢您的回答!

1 个答案:

答案 0 :(得分:4)

有两种方法可以做到这一点。使用cookie或URL参数设置isRemoteVisible之类的值,您可以在页面加载时检查该值。我将用来实现这个的jquery库是:

使用url参数更可靠,因为您的用户可能禁用了Cookie。在检测到cookie / param的值后,您可以通过编程方式触发远程控制以弹出。

修改

您可以使用上面提到的库设置cookie,如下所示:

$.cookie('isRemoteVisible', 'true');

然后您可以按如下方式获取此cookie值:

var showRemote = $.cookie('isRemoteVisible');

最后,对此进行检查以打开对话框:

if ("true" == showRemote)
     $("#remote-control").dialog("open");