jQuery MiniUI

标题: 新版本中网页包含mini.window则window.parent.length大于0 [打印本页]

作者: sesa    时间: 2013-8-6 13:57:14     标题: 新版本中网页包含mini.window则window.parent.length大于0

本帖最后由 sesa 于 2013-8-6 14:03 编辑

以前的版本中如果login页面如果包含mini.window则window.parent.length数值为0,换成最新版本的软件包后window.parent.length长度为1,这是为什么呢?

作者: factory    时间: 2013-8-6 14:24:51

window.parent 是父页面,你看你的页面到底有没有父页面
作者: sesa    时间: 2013-8-6 14:29:37

没有啊,就是基本的login页面里面放了一个mini.window,今天升级版本后发现打开login页面就不停的重定向,因为网页打开的时候会检查是否有父页面,同样的用上一个版本的miniui打开就显示为0,用新版本的miniui显示为1,把login页面中的mini-window的div拿掉就显示为0了,所以想知道新版本关于这方面做了啥变动。
function checkParent() {
        alert (window.parent.length);
        if(window.parent.length>0){
             window.parent.location="index.jsp";
}
                }
作者: factory    时间: 2013-8-6 16:48:55

sesa 发表于 2013-8-6 14:29
没有啊,就是基本的login页面里面放了一个mini.window,今天升级版本后发现打开login页面就不停的重定向, ...

我测试过了,刚刚下载的版本测试了下,页面上放个window,然后alert(window.parent.legnth)是为0的
作者: sesa    时间: 2013-8-6 17:26:37

我这边测试还是为1,把代码简化了一下,帖在下面,请帮忙查看一下。

<%@page import="javax.print.attribute.standard.Finishings"%><%@ page
        language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.util.*,java.lang.reflect.*"%>
<%
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://"
                        + request.getServerName() + ":" + request.getServerPort()
                        + path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="<%=basePath%>">
<title>Login Test</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script src="scripts/boot.js" type="text/javascript"></script>
</head>
<body topmargin="2" leftmargin="2" rightmargin="2" bottommargin="2"
        marginwidth="0" marginheight="0" bgcolor="#FFFFFF" onload="checkParent()">
        <div id="loginWindow" class="mini-window" title="Login"
                style="width:500px;height:250px;" showModal="true"
                showCloseButton="false">
                <div id="loginForm" style="padding:15px;padding-top:10px;">
                        <table id="table1">
                                <tr>
                                        <td style="width:60px;"><label for="username$text">Username:</label>
                                        </td>
                                        <td><input id="username" name="username"
                                                onvalidation="onUserNameValidation" class="mini-textbox"
                                                required="true" style="width:180px;" /></td>
                                </tr>
                                <tr>
                                        <td style="width:60px;"><label for="pwd$text">Password:</label>
                                        </td>
                                        <td><input id="pwd" name="pwd"
                                                class="mini-password" requiredErrorText="密码不能为空" required="true"
                                                style="width:180px;" onenter="onLoginClick" /> &nbsp;&nbsp; <a
                                                href="#">forget password?</a></td>
                                </tr>
                                <tr>
                                        <td></td>
                                        <td style="padding-top:5px;"><a
                                                class="mini-button" style="width:60px;">Login</a> <a
                                                onclick="onResetClick" class="mini-button" style="width:60px;">Reset</a>
                                        </td>
                                </tr>
                                <tr>
                                        <td><font face="Arial" style="font-size: 9pt" color="#FFFFFF">.</font>
                                        </td>
                                        <td></td>
                                </tr>
                        </table>
                </div>
        </div>
        <script type="text/javascript">
                mini.parse();
                var loginWindow = mini.get("loginWindow");
                loginWindow.show();
                function checkParent() {
                        alert(window.parent.length);
                        if (window.parent.length > 0) {
                                //window.parent.location="index.jsp";
                        }
                }
        </script>

</body>
</html>
作者: factory    时间: 2013-8-6 17:39:44

sesa 发表于 2013-8-6 17:26
我这边测试还是为1,把代码简化了一下,帖在下面,请帮忙查看一下。

你判断window.parent.lengt的目的是做什么? 或者你改成判断window.parent.location试试呢
作者: sesa    时间: 2013-8-7 09:57:23

factory 发表于 2013-8-6 17:39
你判断window.parent.lengt的目的是做什么? 或者你改成判断window.parent.location试试呢 ...

是为了防止session time out之后重定向到登录页面的时候在frame中打开,而不是父窗口中打开
作者: niko    时间: 2013-8-7 11:47:41

一般判断登录失效,直接 top.location = '/login.html'
如果你想判断是否有父页面: if(window != window.parent)
实在不明白window.parent.length是干嘛,难道一个页面有多个父级页面?




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2