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。このプロパティは、新しいウィンドウが閉じられている場合に当てはまります。

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

ウィンドウのステータスを継続的に監視する必要がある場合は、次を使用しますwindow.setInterval()

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

新しいウィンドウから、オープナーの関数を呼び出すことで、window.openerがまだ開いていることを繰り返し伝えることができます。

window.opener.callFunctionToTellIamOpened()

この関数を繰り返し呼び出すには、setIntervalhttp://www.w3schools.com/jsref/met_win_setinterval.aspを使用できます

于 2012-11-24T22:01:15.923 に答える