Board logo

標題: window.open()後如何取得最上層父視窗? [打印本頁]

作者: mybible7    時間: 2011-11-29 17:19     標題: window.open()後如何取得最上層父視窗?

大家好!

  想請問一個javascript window.open()的問題, 假如我有一個視窗A, A視窗中用window.open()開了一個B視窗, 在B視窗中又用window.open()開了一個C視窗, 如此可以一直循環開下去, 請問我在最後一個子視窗中要如果取得A視窗?

  另外在A視窗中要如何一次關掉所有的子視窗?

謝謝!
作者: wmh    時間: 2011-11-30 00:01

回復 1# mybible7

給你一段程式,可以自己玩玩看:
<button id="b1">Open</button>
<button id="b2">has Parent?</button>
<button id="b3">Close child</button>
<div id="d1"></div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script type="text/javascript">
var child;
$(function () {
    $("#b1").click(function () {
        child = window.open(window.location.href.split("/").slice(-1)[0], "W" + parseInt(Math.random() * 1000), 10);
    });
    $("#b2").click(function () {
        var op = window.opener;
        if (op) {
            while (op) {
                if (op.name === "") {
                    op.name = "top window";
                }
                $("#d1").append("<div>" + op.name + "</div>");
                op = op.opener;
            }
        } else {
            $("#d1").append("<div>null</div>");
        }
    });
    $("#b3").click(function () {
        closeAllChild();
    });
});
function closeAllChild() {
    if (child) {
        child.closeAllChild();
        child.close();
    }
};





歡迎光臨 jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化 (http://jsgears.com/)