2009-03-02 53 views
2

Oturum açma sayfası var ve giriş yapılıyorsa, giriş sayfamı popup olarak açıyorum. IE 6.0'da sorunla karşılaşmam ama IE.7.0 Bana bir uyarı gösterir "Görüntülemekte olduğunuz web sayfası bu pencereyi kapatmaya çalışıyor. Pencereyi kapatmak istiyor musunuz?" Kodları engelleyecek şekilde eklediğimde, şimdi IE 7.0 beni uyarmıyor ama IE 6.0 aynı sorunu veriyor. Bu sorunu nasıl çözebilirim?Görüntülemekte olduğunuz web sayfası Internet Explorer'da bu pencereyi kapatmaya çalışıyor

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) 

Bu kod bir güvenlik özelliğidir var

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) 

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

cevap

10

uyarı IE 7.0 engellemeye ekleyin. Sonuçta, bazı web siteleri, tarayıcı penceresini kapatmaya karar verdiysem nasıl istersin?

Bundan kaçınmanın en doğru yolu tarayıcı penceresini javascript'ten açmaktır. Bunu yaptığınızda, üst pencereyi kullanıcıya sormadan pencereyi kapatmasına izin verilir.

1

Sen self.opener özelliğini ayarlayarak IE bu düzeltebilirsiniz:

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

DÜZENLEME: MS bu hatayı düzelttik olabilir gibi görünüyor (bu bir hata hep istismar idi). Pencereyi orijinal olarak açmazsanız ve onu açan sayfadan kapatırsanız şansınız kalmaz.

+0

Firefox, MSIE7 veya Chrome'da benim için çalışmaz, eğer olsa iyi olurdu. Onu nasıl işe aldın? – scraimer

+0

Maalesef sadece IE8'im var, bu yüzden test edemiyorum. Bu son zamanlarda kullanmadığım eski bir düzeltme olduğunu kabul ediyorum. Belki de hatayı çözdüler. –

+0

Bu IE6 üzerinde çalışır. Ther window.open ('', '_ self', '') kullanarak başka bir çözüm IE7 & IE8 üzerinde çalışır. IE hakkında endişeleniyorsanız, sürüm kontrol kodunuz olabilir ve bu iki çözümü de uygulayabilirsiniz. – Tejas

2

bir javascript kodu bunu açarsa JavaScript bir pencereyi kapatabilirsiniz

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

, IE6'da iyi çalışıyor ancak IE11'de çalışmıyor – 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

başka bir çözüm.

Açık pencere kullanarak 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> 

Pencereyi kapat kullanarak javascript

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

Çok basit ve IE6, 7, 8, 9, Chrome, FF, Opera, Safari, vb çalışır ... Ben test ettim

İlgili konular