Как сохранить состояние диалога пользовательского интерфейса jQuery между запросами?

У меня есть веб-приложение ASP.NET MVC. Приложением можно управлять с помощью «пульта дистанционного управления», который представляет собой диалоговое окно пользовательского интерфейса jQuery и появляется только при пользователь с достаточными разрешениями входит в систему и нажимает кнопку «показать удаленное управление». (Очевидно, что 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;
    });
});

Заранее спасибо за ваши ответы!


person Venemo    schedule 20.09.2011    source источник


Ответы (1)


Есть два способа сделать это. Используйте либо файл cookie, либо параметр URL, чтобы установить значение, например isRemoteVisible, которое вы можете проверить при загрузке страницы. Библиотеки jquery, которые я бы использовал для этого:

Использование параметра URL более надежно, поскольку у вашего пользователя могут быть отключены файлы cookie. После того, как вы обнаружите значение вашего файла cookie/параметра, вы можете программно активировать всплывающее окно дистанционного управления.

Изменить

Вы можете установить файл cookie с помощью упомянутой выше библиотеки следующим образом:

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

Затем вы можете получить это значение файла cookie следующим образом:

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

Наконец, выполните проверку, чтобы открыть диалоговое окно:

if ("true" == showRemote)
     $("#remote-control").dialog("open");
person Gerard    schedule 20.09.2011
comment
Два комментария: 1. Я не хочу загрязнять URL этим, поэтому подход с параметрами URL не мой подход. 2. Не могли бы вы дать мне код? Пробовал с куками, не помогло. - person Venemo; 20.09.2011