【问题标题】:How to persist jQuery UI dialog state between requests?如何在请求之间保持 jQuery UI 对话框状态?
【发布时间】:2011-11-21 00:01:45
【问题描述】:

我有一个 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;
    });
});

提前感谢您的回答!

【问题讨论】:

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


    【解决方案1】:

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

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

    编辑

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

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

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

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

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

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

    【讨论】:

    • 两个cmets:1.我不想用这个污染URL,所以URL参数方法不是我的方法。 2. 你能给我一些代码吗?我尝试使用 cookie,但它不起作用。
    猜你喜欢
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多