2016-10-17 12 views
0

ポップウィンドウを閉じる際に問題があります。私の問題は、親からログアウトをクリックすると種類が一意で、すべてのウィンドウが閉じられますが、子供からログアウトすると親からログアウトしているので、開いている他の子ウィンドウは閉じません。ポップアップが親からクローズしない

子供からログアウトしてから親からログアウトすると、コンソールにチェックインされ、ifブロックには入りません。

function openpop1() { 
    sessionId = getURLParameters('requestID'); 
    userName = getURLParameters('userName'); 
    userId = getURLParameters('userId'); 
    lvalue = getURLParameters('lValue'); 
    lver = getURLParameters('lVer'); 
    window.name = "parent"; 
    var intWidth = screen.width - 10; //Adjust for the end of screen 
    var intHeight = screen.height - 80; //Adjust for the Icon Bar at the bottom of the window. 
    var strWinProp = " toolbar=no"   //Back, Forward, etc... 
        + ",location=no"  //URL field 
        + ",directories=no" //"What's New", etc... 
        + ",status=yes"  //Status Bar at bottom of window. 
        + ",menubar=no"  //Menubar at top of window. 
        + ",resizable=yes"  //Allow resizing by dragging. 
        + ",scrollbars=yes" //Displays scrollbars is document is larger than window. 
        + ",titlebar=yes"  //Enable/Disable titlebar resize capability. 
        + ",width="+intWidth //Standard 640,800/788, 800/788 
        + ",height="+intHeight //Standard 480,600/541, 600/566    
        + ",top=0"    //Offset of windows top edge from screen. 
        + ",left=0"    //Offset of windows left edge from screen. 
        + ""; 
    awin = window.open(aUrl + userName + "&requestID=" + sessionId 
      + "&userId=" + userId + "&lValue=" + lvalue + "&lVer=" + lver,'_blank',strWinProp); 
} 
function openpop2() { 
    sessionId = getURLParameters('requestID'); 
    userName = getURLParameters('userName'); 
    userId = getURLParameters('userId'); 
    lvalue = getURLParameters('lValue'); 
    lver = getURLParameters('lVer'); 
    window.name = "parent"; 
    var intWidth = screen.width - 10; //Adjust for the end of screen 
    var intHeight = screen.height - 80; //Adjust for the Icon Bar at the bottom of the window. 
    var strWinProp = " toolbar=no"   //Back, Forward, etc... 
        + ",location=no"  //URL field 
        + ",directories=no" //"What's New", etc... 
        + ",status=yes"  //Status Bar at bottom of window. 
        + ",menubar=no"  //Menubar at top of window. 
        + ",resizable=yes"  //Allow resizing by dragging. 
        + ",scrollbars=yes" //Displays scrollbars is document is larger than window. 
        + ",titlebar=yes"  //Enable/Disable titlebar resize capability. 
        + ",width="+intWidth //Standard 640,800/788, 800/788 
        + ",height="+intHeight //Standard 480,600/541, 600/566    
        + ",top=0"    //Offset of windows top edge from screen. 
        + ",left=0"    //Offset of windows left edge from screen. 
        + ""; 
    bwin = window.open(bUrl + userName + "&requestID=" + sessionId + "&userId=" 
      + userId + "&lValue=" + lvalue + "&lVer=" + lver,'_blank',strWinProp); 
} 

そしてログアウトしながら、私は私の問題は、なぜそれがifブロック時に内側に行くのではありませんされて今

function onLogout() { 
    if (awin && !awin.closed) { 
     awin.close(); 
    } 
    if (bwin && !bwin.closed) { 
     bwin.close(); 
    }  

    sessionId = getURLParameters('requestID'); 
    var rcvReq = getXmlHttpRequestObject(); 
    rcvReq.onreadystatechange = function() { 
     if (rcvReq.readyState == 4 || rcvReq.readyState == 0) { 
      var data = rcvReq.status; 
     } 
    } 
    rcvReq.open("GET", logoutUrl +sessionId, true); 
    rcvReq.send(null); 
    window.location = loginPageUrl; 
} 

を呼び出しています - 私はこのようにすべてのポップアップを開封しております

私は子供から、そして親からログアウトしています。私はこれらの行にブレークポイントを追加してこれをチェックしました。

if (awin && !awin.closed) { 
     awin.close(); 
    } 
    if (bwin && !bwin.closed) { 
     bwin.close(); 
    }  

誰もが考えていますか?これで私を助けてください。なぜ私はifの条件を満たしていないのですか?

+0

これまでに行ったことの例を挙げてください。何が起こっているのか確認できますか? –

+0

あなたは私にどのように示唆することができますか? – shv22

+0

を使用https://jsfiddle.net/ –

答えて

0

このコードは、awinとbwinがポップアップへの有効な参照を持っている場合にのみ実行されます。あなたはawin = window.open(呼び出すawin変数の値を書き留めてポップアップを閉じるときawin値がまだ同じであることを再確認した後

if (awin && !awin.closed) { 
    awin.close(); 
} 
if (bwin && !bwin.closed) { 
    bwin.close(); 
} 

は、このテストを試してみてください。

+0

です。コンソールでブレークポイントを使用してチェックしたところ、まったく同じです。 – shv22

関連する問題