2016-03-21 8 views
3

In einem meiner Anwendung, öffne ich Popup durch JavaScript window.open() und wenn der Benutzer öffnet den gleichen Link; Ich möchte das zuvor geöffnete Popup durch schließen window.close().Javascript window.close() Popup-Problem in IE

Jetzt für die unten genannten Fälle IE nicht in der Lage, zuvor zu öffnen Popup öffnen und es öffnet sich mehrere.

1) Interner Link: Für Interne Links, die verschiedenen Seiten der gleichen Anwendung in Popup für alle Browser es funktioniert gut Mittel zu öffnen.

2) Externer Link: Wenn ich öffne externen Link auf 3 rd Anbieter-Anwendung oder jede andere externe Seite wie Google.com oder so diese Funktionalität funktioniert für alle anderen Browser außer IE (Internal Explorer).

Gibt es eine Lösung für dieses? ....

folgende JavaScript-Code, der Ihnen die gleiche Funktionalität Cross-Browser-Plattform erreichen helfen? ....

Jede Probe würde geschätzt .
Vielen Dank im Voraus.

Antwort

0

Sie können einen Fensternamen als zweites Argument an window.open() übergeben. Wenn ein Fenster mit diesem Namen bereits geöffnet ist, wird es wiederverwendet.

window.open(myUrl, 'myPopupWinodw'); 

Wenn Sie das gleiche Fenster Namen verwenden, müssen Sie nicht die vorherige Popup zu schließen, da die URL wird im selben Popup-Fenster geöffnet werden.

Siehe https://developer.mozilla.org/en-US/docs/Web/API/Window/open

+0

hilft ich die __popupWindowName__ verwenden; Es funktioniert jedoch nicht für IE. Für andere Browser funktioniert es gut. –

0

Hoffnung dieser Code Ihnen

function closeWindow() { 
var Browser = navigator.appName; 
var indexB = Browser.indexOf('Explorer'); 

if (indexB > 0) { 
    var indexV = navigator.userAgent.indexOf('MSIE') + 5; 
    var Version = navigator.userAgent.substring(indexV, indexV + 1); 

    if (Version >= 7) { 
     window.open('', '_self', ''); 
     window.close(); 
    } 
    else if (Version == 6) { 
     window.opener = null; 
     window.close(); 
    } 
    else { 
     window.opener = ''; 
     window.close(); 
    }  
} 
else { window.close(); }   

}