jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化's Archiver

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

[b]回復 [url=http://jsgears.com/redirect.php?goto=findpost&pid=2894&ptid=1645]1#[/url] [i]mybible7[/i] [/b]

給你一段程式,可以自己玩玩看:[code]
<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();
    }
};
[/code]

頁: [1]

Powered by Discuz! Archiver  © 2001-2009 Comsenz Inc.