JS返回一个页面,这个页面包含一个跳转的JS,JS获取最上级window,跳转
输出脚本
window.parent.location.href="..."
脚本:top.location.href="/"
那你可以在后台加上这么一句,假如操作Session时出现空引用异常,那么就在异常处理方法体中加上下面这句话Response.Write("<script>alert('超时,请重新登录系统!');top.location.href='XXX_login.aspx'</script>");
这个时候就会跳转到你的登陆界面,并且呢,框架页面也会被关闭
非常感谢,已解决.
/// <summary>
/// 显示消息提示对话框,并进行页面跳转
/// </summary>
/// <param name="page">当前页面指针,一般为this</param>
/// <param name="msg">提示信息</param>
/// <param name="url">跳转的目标URL</param>
/// <param name="isTop">指定是否为框架内跳转(True表示跳出框架外)</param>
public static void ShowAndRedirect(System.Web.UI.Page page, string msg, string url, bool isTop)
{
StringBuilder builder = new StringBuilder();
builder.Append("<script language='javascript' defer>");
builder.AppendFormat("alert('{0}');", msg);
if (isTop == true)
{
builder.AppendFormat("top.location.href='{0}'", url);
}
else
{
builder.AppendFormat("location.href='{0}'", url);
}
builder.Append("</script>");
page.ClientScript.RegisterStartupScript(page.GetType(), "message" + System.Guid.NewGuid().ToString(), builder.ToString());
}
后台代码做判断的话,可以用上面的方法。
上面的方法是我已经封装好的跳转。
传入 isTop=true 就可以跳出当前框架进行页面跳转。