繁体   English   中英

为什么当用户离开页面导航时不触发回发,而是在关闭时触发回发?

[英]Why is Post back not triggered when user navigates away from page, but triggered on close?

我有以下代码来检测用户导航或关闭。 回发在关闭时触发,但在离开时不会触发。 如果我放置警报消息,则始终会触发该消息。

哦,页面上有一个计时器,第一次打勾后实际上已被禁用。 但是在使用eventtarget计时器导航时,总会有一个回发触发器。 我认为这可能是因为我已经清除了上一页的缓存。

<script src="Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(window).bind("beforeunload", function () {
        alert("u r navigating away"); // this message gets triggered at all times.
        __doPostBack('callPostBack');
    });
</script>


    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            string eventTarget = this.Request["__EVENTTARGET"];
            string eventArgument = this.Request["__EVENTARGUMENT"];

            if (eventTarget != String.Empty && eventTarget == "callPostBack")
            {
                //do task
            }

        }
    }

提前致谢。

这是不合逻辑的,当用户离开页面或关闭页面时,您实际上无法发回信息,想一想,用户关闭页面,而您尝试重新加载页面吗? 而且,如果您的操作有效,那么您将陷入死循环,您可以发回邮件并保持打开用户尝试关闭的页面。 无论如何,如果用户关闭页面或对其进行更改,则这是第一要务,而回发将不起作用。

如果您尝试进行ajax调用,那么您也会失败,因为ajax在页面关闭后停止,并且将在ajax触发器之前完成(页面关闭)。

您需要重新进行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM