2009-03-02 3 views
2

J'ai une page de connexion et si la connexion est réussie, j'ouvre une page d'accueil en tant que popup.In IE 6.0, je ne rencontre pas un problème mais IE.7.0 me montre une alerte "La page Web que vous regardez essaye de fermer cette fenêtre. Voulez-vous fermer la fenêtre?" Quand j'ajoute les codes pour l'entraver, maintenant IE 7.0 ne me donne pas d'alerte mais IE 6.0 donne le même problème. Comment puis-je résoudre ce problème?La page Web que vous consultez est en train de fermer cette fenêtre d'avertissement dans Internet Explorer

Dim strScript As String = "<script language= ""javascript"">window.open('" & Class.cls_LU_PARAMETRE.Deger("START_PAGE") & "','" & Now.ToString("ddMMyyyyHHmmss") & "','resizable=1,width=1015,height=700,left=0,top=0,scrollbars=1,status=1');</script>" 
Me.RegisterStartupScript("start", strScript) 

j'ajouter ce code à entraver IE 7.0 alerte

Dim s As String 
s = "<script language= ""javascript"">" 
s += " {var oMe = window.self;oMe.open('','_self',''); oMe.close();}" 
s += " </script>""" 
Me.Page.RegisterStartupScript("close", s) 

'******************** 

Répondre

10

Il est une fonction de sécurité. Après tout, comment voulez-vous si un site Web que vous avez décidé de fermer votre fenêtre de navigateur?

La manière la plus correcte d'éviter cela est d'avoir ouvert la fenêtre du navigateur depuis javascript. Lorsque vous faites cela, la fenêtre parente est autorisée à fermer la fenêtre sans demander à l'utilisateur.

1

Vous pouvez résoudre ce problème dans Internet Explorer en définissant la propriété de self.opener:

self.opener = this; 
self.close(); 

EDIT: il semble que MS peut avoir résolu ce bug (il a toujours été un bug exploit). On dirait que vous n'avez pas de chance à moins d'ouvrir la fenêtre à l'origine et de la fermer à partir de la même page qui l'ouvre.

+0

Ne fonctionne pas pour moi sur Firefox, MSIE7 ou Chrome ... ce serait cool si c'était le cas, cependant. Comment l'avez-vous fait fonctionner? – scraimer

+0

Malheureusement, je n'ai que IE8, donc je ne peux pas le tester. J'avoue que c'est un correctif très ancien que je n'ai pas utilisé récemment. Peut-être qu'ils ont corrigé le bug. –

+0

Cela fonctionne sur IE6. Une autre solution d'utilisation de window.open ('', '_ self', '') fonctionne sur IE7 et IE8. Si vous ne vous souciez que de IE, vous pouvez avoir un code de vérification de version et implémenter ces deux solutions. – Tejas

2

une autre solution

window.opener = ""; 
window.close(); 
+0

cela fonctionne très bien dans IE6, mais pas dans IE11 – TutuGeorge

2
function openpopup() 
{ 


    { 
     var closeurl = "Default2.aspx"; 
     var popurl = "FrmUserLoginpage.aspx"; 
     winpops = window.open(popurl, "HMSAJAX", "toolbar=no,menubar=no, resizable=yes,status=yes,scrollbars=yes"); 
     window.open('', '_self', ''); 
     window.close(); 

    } 

} 
2

Javascript peut fermer une fenêtre si un code javascript ouvre.

Ouvrir la fenêtre en utilisant javascript

<script type="text/javascript"> 
    function openWin(url, target, args){ 
     if(target && args)window.open(url, target, args); 
     else if(target)window.open(url, target); 
     else window.open(url); 
    } 
</script> 
<a href="javascript:openWin('close.html');">Open window</a> 
<a href="close.html" target="_self">Open window that won't close</a> 

Fermer la fenêtre en utilisant javascript

<a href="javascript:if(window.opener)window.close();">Close window</a> 

Il est simple et cela fonctionne dans IE6, 7, 8, 9, Chrome, FF, Opera, Safari, etc. ... Je l'ai testé

Questions connexes