0

ここで初めて。Javascript を使用して、これらの機能を使用して何かをコーディングしようとしています。

まず、リンクがクリックされ、既存のポップアップ ウィンドウがない場合、ポップアップ ウィンドウが作成され、そのリンクに移動します。

ただし、2 番目のリンクがクリックされ、既存のポップアップ ウィンドウがある場合は、 AJAX 関数が実行されます。そのリンクには移動しません。

ただし、別のリンクがクリックされ、ポップアップ ウィンドウが閉じられた場合は、ウィンドウが再び開きます (そのリンクに移動します)。

これを解決できる唯一の方法は、グローバル変数を使用することですが、うまくいきません。誰か助けてくれませんか?ありがとう!

これが私のjsfiddleです

HTML

<a href="javascript:;" onclick="javascript:displayWindow=openwindowPreview(1, displayWindow); return false">1</a>
<br/>
<a href="javascript:;" onclick="javascript:displayWindow=openwindowPreview(4, displayWindow); return false">4</a>

Javascript

var displayWindow = null;
var test = 'test';

function openwindowPreview(id, winObject) {
    // check if the window already exists
    if (winObject != null) {
        // the window has already been created, but did the user close it?
        // if so, then reopen it. Otherwise make it the active window.
        if (!winObject.closed) {
            winObject.focus();
            return winObject;
        }
    }

    if (test != 'test') {
        if (winObject.closed) {
            test = 'test';
        } else {
            alert('ajax');
        }
    }

    // if we get here, then the window hasn't been created yet, or it
    // was closed by the user.
    if (test == 'test') {
        var urlDisplayID= "file.php?ID=" + id;
        window.open(urlDisplayID, 'width=' + screen.width, 'height=' + screen.height);
        test = 'tested';
    }
}

基本的に、ウィンドウの 1 つのインスタンスのみを一度に許可し、最初のインスタンスのみを表示し、他のインスタンス (パラメーターのために異なる URL) は AJAX 経由でサーバーに送信されます。

4

1 に答える 1