【问题标题】:want to set alert when page url changes想要在页面 url 更改时设置警报
【发布时间】:2012-12-24 08:47:10
【问题描述】:

当用户试图通过导航到另一个页面或更改 url 离开页面时,我如何调用事件? 我尝试了以下方法,但它不起作用。

 protected void Page_Unload(object sender, EventArgs e){}

 protected override void OnUnload(EventArgs e){}

谢谢,

【问题讨论】:

  • 你应该为此使用javascript

标签: javascript asp.net c#-4.0 webpage


【解决方案1】:

您可以在 jquery 中使用 bind 属性。可能还有一点您想忽略警告,只需创建一个变量并在您希望忽略警告时设置它。

包括JQuery library

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

之后,您可以将以下 javascript 添加到您的页面。

<script type="text/javascript">
var ignore = false;

$(function () {
    $(window).bind('beforeunload', function () {
        if (!ignore) {
            return 'WARNING: Data you have entered may not be saved.';
        }
    });

    $('.ignorepostback').live('click',function () {
        ignore = true;
    });
});
</script>

【讨论】:

  • 执行上述代码时出现以下错误-“Microsoft JScript 运行时错误:属性 '$' 的值为 null 或未定义,不是函数对象”
  • 您需要添加 Jquery 库,我编辑了帖子以反映这一点。
  • 如果您使用 css 类 ignorepostback 添加到您的页面的链接,它将触发该功能。因此,如果您有一个链接,当有人单击它时,您只想忽略并让他们离开,只需添加类 ignorepostback。 点击这里
【解决方案2】:

你不能做那个服务器端。

你可以尝试在客户端实现一些东西,例如通过连接窗口的卸载事件。或者在 jquery 中使用unload handler

$(window).unload(function() {
  alert('Do not bug users with alerts or try to keep them on your site');
});

请记住,用户通常不喜欢在他们决定离开时给他们带来麻烦的网站...

【讨论】:

    【解决方案3】:

    通过javascript,您可以使用onbeforeunload

    window.onbeforeunload = function(e) {
      return 'Dialog text here.';
    };
    

    【讨论】:

    猜你喜欢
    • 2022-10-13
    • 2012-03-11
    • 1970-01-01
    • 2015-07-01
    • 2023-02-13
    • 1970-01-01
    • 2020-05-17
    • 2011-12-12
    • 2020-06-11
    相关资源
    最近更新 更多