将Jquery超时代码集成到ASP.NET应用程序中的经典ASP表单中

时间:2010-09-03 21:45:17

标签: jquery asp-classic timeout parent-child

我编写了一个Jquery函数,在一定程度的不活动后使屏幕变黑,创建一个弹出窗口,允许用户单击按钮以保持登录状态,并将其记录下来(关闭应用程序窗口)不要及时回应。

环境是ASP.NET(VB)。我们在技术上不使用母版页,但是我们确实有一个父页面,我们的页眉,页脚和导航驻留在其中,我的Jquery代码从该窗口调用,通过IFrame加载。

我们使用txControl的ActiveX版本作为应用程序内置的文本编辑器。我们很快就会进行升级,但是现在我已经有了这个经典的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超时div按照设计覆盖整个窗口?感谢您的时间和任何可能提供的帮助!

ShouldLook DoesLook 顶部pic是所需的结果,以及所有aspx页面上的结果。底部图片是我在经典的asp页面上得到的。

编辑:好吧,我想把ASP页面的所有基本部分都包含在div中(称为“divPage”),然后隐藏div。如果我称之为“$('#divPage'),它就像一个魅力。hide();”从ASP文件的head部分中的脚本 - 它一旦文档加载就隐藏div。但是,我需要条件隐藏,所以我尝试将相同的代码放在我的Jquery文件中,在pop_init函数中,虽然该函数中的其余代码对我执行完美,但隐藏divPage的代码却什么也没做。任何想法为什么我会得到不同的结果来自iniline代码,而不是RC_Jquery.js文件中包含的函数?

1 个答案:

答案 0 :(得分:0)

jQuery是所有客户端编码ASP是服务器端 - 这个帖子需要移动到jQuery论坛/标签