我有一个 ASP.NET MVC 网络应用程序。该应用程序可以使用“远程控制”进行管理,这是一个 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;
});
});
预先感谢您的回答!
最佳答案
有两种方法可以做到这一点。使用 cookie 或 URL 参数设置一个值,例如 isRemoteVisible
,您可以在页面加载时检查该值。我将用来实现此目的的 jquery 库是:
- Cookie 方法:https://github.com/carhartl/jquery-cookie
- Url 参数方法:http://www.mathias-bank.de/jQuery/jquery.getUrlParam.js
使用 url 参数更可靠,因为您的用户可能已禁用 cookie。检测到 cookie/param 的值后,您可以通过编程方式触发 Remote 弹出。
编辑
您可以使用上述库设置 cookie,如下所示:
$.cookie('isRemoteVisible', 'true');
然后您可以按如下方式获取此 cookie 值:
var showRemote = $.cookie('isRemoteVisible');
最后,执行检查以打开对话框:
if ("true" == showRemote)
$("#remote-control").dialog("open");
关于javascript - 如何在请求之间保持 jQuery UI 对话框状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7484176/