Интеграция кода времени ожидания Jquery в классическую форму ASP в приложении ASP.NET - PullRequest
0 голосов
/ 04 сентября 2010

Я написал функцию Jquery, которая затемняет экран после определенного периода бездействия, создает всплывающее окно, позволяющее пользователю нажимать кнопку, чтобы оставаться в системе, и выводить их из системы (закрывая окно приложения), если они не отвечайте вовремя.

Среда - ASP.NET (VB). Технически мы не используем мастер-страницы, но у нас есть родительская страница, в которой находятся наш верхний и нижний колонтитулы, а также мой код Jquery, вызываемый из этого окна и загружаемый через IFrame.

Мы используем версию ActiveX txControl в качестве нашего текстового редактора, встроенного в приложение. Мы собираемся выполнить обновление очень скоро, но сейчас у меня есть одна классическая страница ASP, в которую мне нужно интегрировать код тайм-аута, но когда код тайм-аута включается, файл ASP не "отключается" как остальные дочерние окна и кнопка для продолжения сеанса невидимы, и, как я предполагаю, оказались за страницей ASP.

Вот моя основная функция тайм-аута, которая находится в файле .js и вставляется в родительское окно с помощью тега скрипта:

function pop_init() {
    // show modal div
    $("html").css("overflow", "hidden");
    $("body").append("<div id='popup_overlay'></div><div id='popup_window'></div>");
    //$("#popup_overlay").click(popup_remove);  // removed to make sure user clicks button to continue session.
    $("#popup_overlay").addClass("popup_overlayBG");
    $("#popup_overlay").fadeIn("slow");

    // build warning box
    $("#popup_window").append("<h1>Warning!!!</h1>");
    $("#popup_window").append("<p id='popup_message'><center>Your session is about to expire.  Please click the button below to continue working without losing your session.</center></p>");
    $("#popup_window").append("<div class='buttons'><center><button id='continue' class='positive' type='submit'><img src='images/green-checkmark.png' alt=''/> Continue Working</button></center></div>");

    // attach action to button
    $("#continue").click(session_refresh);

    // display warning window
    popup_position(400, 300);
    $("#popup_window").css({ display: "block" }); //for safari using css instead of show
    $("#continue").focus();
    $("#continue").blur();

    // set pop-up timeout
    SESSION_ALIVE = false;
    window.setTimeout(popup_expired, WARNING_TIME);
}

Я прикрепил код «оставайся в живых» к событиям mousedown, keydown и blur в дочерних окнах следующим образом:

<script src="http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js" type="text/javascript" language="javascript"></script>
<script type="text/javascript">
    $(document).ready(function() {
        window.parent.reportChildActivity();
    });
</script>
<script type="text/javascript">
    $(document).bind("mousedown keydown blur", function() {        
            window.parent.reportChildActivity();
    });
</script>

Я попытался добавить следующее в мой файл ASP, только чтобы получить результат, который вы видите на прикрепленном изображении:

<script src="http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js" type="text/javascript" language="javascript"></script>
<script src="JScripts/RC_jquery.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function() {
        window.parent.reportChildActivity();
    });
</script>
<script type="text/javascript">
    $(document).bind("mousedown keydown blur", function() {
        window.parent.reportChildActivity();
    });
</script>

Может кто-нибудь сказать мне, что мне нужно сделать, чтобы тайм-аут Jquery перекрывал все окно, как было задумано? Спасибо за ваше время и любую помощь, которую вы можете оказать!

ShouldLook DoesLook Top pic - это желаемый результат и результат на всех страницах aspx. Нижняя картинка - это то, что я получаю на классической странице осины.

РЕДАКТИРОВАТЬ: Ну, я подумал обернуть все основные части страницы ASP в div (называемый "divPage"), а затем скрыть div. Это работает как брелок, если я вызываю "$ ('# divPage'). Hide ();" от сценария в разделе заголовка файла ASP - он скрывает div, как только документ загружается. Однако мне нужно условное скрытие, поэтому я попытался поместить тот же код в мой файл Jquery, в функцию pop_init, и хотя остальная часть кода в этой функции выполняется для меня без нареканий, код для скрытия divPage ничего не делает. Любые идеи, почему я получаю другие результаты из кода iniline, в отличие от функции, включенной в файл RC_Jquery.js?

1 Ответ

0 голосов
/ 02 февраля 2011

jQuery - это все кодирование на стороне клиента ASP - на стороне сервера - эту публикацию необходимо перенести на форум / тег jQuery

...