Как сохранить состояние диалога jQuery UI между запросами? - PullRequest
1 голос
/ 20 сентября 2011

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

4 голосов
/ 20 сентября 2011

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

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

Редактировать

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

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

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

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

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

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