2

我正在使用以下 javascript 打开另一个窗口,我想检查该窗口是否真的打开,但是如果窗口没有打开,我希望它调用“pause()”函数。即使经过3天的研究,我也不知道如何做到这一点,有人可以指导我吗?

打开窗口的javascript:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js"></script>
    <script type="text/javascript">
        var windowSizeArray = ["width=300,height=300",
                                "width=200,height=400,scrollbars=yes"];

        $(document).ready(function () {
            $('#newWindow').click();
            window.open($('#newWindow').attr('href'), 'window name', 'window settings')
            $('.newWindow').click(function (event) {

                var url = $(this).attr("href");
                var windowName = "popUp"; //$(this).attr("name");
                var windowSize = windowSizeArray[$(this).attr("rel")];

                window.open(url, windowName, windowSize);

                event.preventDefault();

            });
        });


    </script>

如果该窗口未打开,我希望它调用暂停函数:

<a href="javascript:void(0);" onclick="pause();"><img name="b1" src="system/modules/surf/stop.png" border="0" alt="Pause" title="Pause" style="position:absolute;top:28px;margin-left:5px"></a>
4

2 回答 2

1

该函数window.open()返回一个新创建的窗口的句柄,它有一个closed属性。如果新窗口已关闭,则此属性为 true:

var popuphandle=window.open(...);
alert(popuphandle.closed);

如果您需要持续监控窗口的状态,请使用window.setInterval()

window.setInterval(function()
{
    if (popuphandle.closed) pause();
}, 1000);
于 2012-11-24T22:04:54.023 回答
0

您可以从您的新窗口中,通过调用 opener 的函数反复告诉 window.opener 它仍然处于打开状态

window.opener.callFunctionToTellIamOpened()

要重复调用此函数,您可以使用 setInterval http://www.w3schools.com/jsref/met_win_setinterval.asp

于 2012-11-24T22:01:15.923 回答