我的网站假如地址是:http://localhost:32640/Default.aspx 导航菜单分为:我的主页,我的好友,我的论坛,我的留言四块。我的任何一个菜单的时候IE地址栏永远是http://localhost:32640/Default.aspx。现在如果用户在我的好友页中做了修改,在没有保存更改的前提下就直接点击我的留言页去了。我要如何做到给用户已个保存提示。在他做跳转的时候~

解决方案 »

  1.   

    临时的保存用Cookie,永久保存的话,就要用到比如数据库记录等
    如果你可以用那个AJAX+JS来做到这一点。
    比如用户修改了好友列表,然后这个时候点击了留言页,这个时候用AJax把修改的数据保存回去,然后给出提示,再跳转。
      

  2.   

    我覍得,用焦点来处理。
    当文本框失去焦点时,就激发JS事件发出提问。
    确定就返回ture。多简单。
    唯一的缺点就是:如果用户是点击保存,也会提问。把提问语句改得中肯一点,应该可以吧
      

  3.   

    网页不是有一个onbeforeunload事件吗?<script language="javascript" type="text/javascript"><!--
    var pb_strConfirmCloseMessage;
    var pb_blnCloseWindow = false;
    pb_strConfirmCloseMessage ="您真的要离开本页吗?";
    function ConfirmClose() {
    window.event.returnValue = pb_strConfirmCloseMessage;
    pb_blnCloseWindow = true;
    }
    function ShowConfirmClose(blnValue) {
    if(blnValue) {
    document.body.onbeforeunload = ConfirmClose;
    } else {
    document.body.onbeforeunload = null;
    }
    }
    //--></script>
      

  4.   


    框架页不是有多个窗口组成的吗?怎么用不了?
    在你编辑内容的窗口里使用 onbeforeunload没有别的方法
      

  5.   

    http://localhost:32640/Default.aspx 导航菜单分为:我的主页,我的好友,我的论坛,我的留言四块。我点任何一个菜单的时候IE地址栏永远是http://localhost:32640/Default.aspx
      onbeforeunload  确实用不了~~
      

  6.   

     其实这个问题也是一直困扰了我很久的,经一翻寻找,我才有所了解,也许不太对,但一定对你有启发
    这个肯定在在客户端验证的。我知道www.51.com这个博客的跳转方式就是楼主想要做的。我试了一下,就是当你点击他的某些菜单项时,它才会弹出“您确实要离开该页面吗,离开前请先保存你的内容。”,这个时候它是在客户验证的,并没有回传到服务器,但有的菜单项它就不弹出。而且当我不修改"个人日记"这个页面再点击“个人日记”这个菜单项,它还是会弹出这个警告框,这说明什么呢,这说明<a href="个人日记.aspx" targer="right" onclick="return confirm("您确定要离开该页面吗,离开前请先保存你的内容...");"> ,可是当你第一点这个“个人日记”这个菜单项时,它并没有confirm()。
    这样,我们就可以推出,它是怎么一回事了,就是当你点“个人日记”这个菜单项到达“个人日记”.aspx时,这个“个人日记”.aspx.cs里面就对这个网页的左框架菜单里的某些菜单注入了 onclick="return confirm("您确定要离开该页面吗,离开前请先保存你的内容...");
      

  7.   

    还有就是当你保存了这个页面,还要把这个注入了 onclick="return confirm("您确定要离开该页面吗,离开前请先保存你的内容...");东西去掉。