[转]框架网页实现退出系统菜单

这几天做个设备管理系统。用的是框架网页,总体分为上下两个框架,下面的框架又分为左右两个栏。左边的是系统菜单。右面可以进行其他操作,作为主要的页面。

碰到一个很棘手的问题:当在左边的菜单页退出系统时,右面的操作如果还停在功能页面,就会造成界面不统一,不能实现真正的系统退出。

今晚在同学的帮助下。解决了这个问题。

主要思路:

把退出系统的按钮放在一个div标签里面。然后把DIV标签的宽度设为1px,按钮为服务器控件。当用户点击按钮的时候也会激发DIV标签的onclick事件。在服务器端进行session的清除、菜单页面向登陆页面跳转等工作。在客户端用javascript进行右面框架中页面跳转到系统初始状态时的页面。这样处理之后,整个系统在用户退出之后又回到用户登录之前的初始状态。

前台代码:

   javascript代码:

<script>

<!--
    function ll(str)
   {
        //window.location="login.aspx";//将页面切换到登陆界面
        var a='<%=Session["user"] %>';
        alert(a+" 成功退出系统!");
        window.parent.window.frames[2].location="mid.aspx";//将左边的框架中的页面切换到系统初始化界面
    }  
    //-->   
    </script>
   
    
    
div标签和“退出系统”按钮:
    <div>
       <div style=" 1px;" onclick="return ll('mainFrame');"><input id="Button1" type="button" value="退出系统" runat="server" onserverclick="Button1_ServerClick" /></div>

后台代码:

退出系统这个按钮的click事件

protected void Button1_ServerClick(object sender, EventArgs e)
    {
              
        Session.Clear();//用户退出系统,清除系统状态,清空所有的session变量。

        Server.Transfer("login.aspx");
    }

Session.Remove("user");把单个session清除,

Session.Clear()就是把Session对象中的所有项目都删除了,

Session.Abandon()就是把当前Session对象删除了,下一次就是新的Session了。

JS无提示关闭网页

IE6下的脚本:
<script>
window.opener=null;
window.close();
</script>

IE7下的脚本:
<script>
window.open('','_self');
window.close();
</script>

IE6、IE7、FF通用代码:
<script>
window.opener=null;
window.open('','_self');
window.close();
</script>

原文地址:https://www.cnblogs.com/losesea/p/2508812.html