Как да поддържам диалоговото състояние на jQuery UI между заявките?

Имам уеб приложение 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)


Има два начина да направите това. Използвайте бисквитка или URL параметър, за да зададете стойност като isRemoteVisible, която можете да проверите при зареждане на страницата. Библиотеките jquery, които бих използвал, за да постигна това, са:

Използването на url параметър е по-надеждно, тъй като вашият потребител може да има деактивирани бисквитки. След като откриете стойността на вашата бисквитка/параметър, можете програмно да задействате дистанционното управление да изскочи.

Редактиране

Можете да зададете бисквитка, като използвате библиотеката, спомената по-горе, както следва:

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

След това можете да получите тази стойност на бисквитката, както следва:

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