7

Aşağıdaki kod tarayıcı penceresini kapatma olayını tanımlamak için kullanıyorum ve IE11'de değil, diğer tarayıcılarda belirtilen şekilde çalışıyor. Kodun bu satırı bana sadece'u IE11 alert(event.clientY+":"+event.clientX); numaralı telefondan verdiğinden, lütfen bu soruna bir çözüm öneriniz.Fare Olayı Özellikleri, IE üzerinde tanımlı değil 11

event = window.event || event; 

ancak referans burada kullanılmaz:

window.onbeforeunload = function(event) 
{ 
event= window.event|| event; 
alert(event); 
alert(event.clientY+":"+event.clientX); 

    if(event.clientX <0 || event.clientY < 0) 
    { 
     // ajax call to server to nullify the session. 
     window.close(); 
    } 
}; 
+0

Olası kopyalar ] (http://stackoverflow.com/questions/20272820/pagex-pagey-not-working-in-ie8-if-i-add-doctype-html) –

+0

Hayır, sorum şu IE 11 içindir ve IE8 için değil –

+0

Yani ... İmleç ekranın ortasındaysa ve Alt + F4 tuşlarına basarsam ne olur? –

cevap

0

MDN'den beforeunload event olay nesnesinden hangi özelliklerin desteklendiğini görebilirsiniz.

Olay nesnesinin clientX ve clientY'si, tanımlanmamış oldukları için desteklenmez. Bu onbeforeunload olay bu tür bilgileri (konumsal X ve Y)

Ben IE11, Chrome 48 kodunuzu test içermediğinden Chrome ve FF da olur

, FF 44.

Geçici bir coud:

var clientX = 0; 
 
var clientY = 0; 
 
var scheduled = false; 
 

 
window.onmousemove = function (event) { 
 
    if (!scheduled) { 
 
    scheduled = true; 
 
    setTimeout(function() { 
 
     event = event || window.event; 
 
     clientX = event.clientX; 
 
     clientY = event.clientY; 
 
     scheduled = false; 
 
    }, 1000); 
 
    } 
 
} 
 

 
window.onbeforeunload = function (event) { 
 
    alert(clientY+":"+clientX); 
 
    if (clientX < 0 || clientY < 0) { 
 
    // ajax call to server to nullify the session. 
 
    window.close(); 
 
    } 
 
};

i eklerseniz [pageX SayfaY IE8 çalışmıyor ait
1

olay nesnesi iki kez tanımlanır

if(window.event.clientX < 0 || window.event.clientY < 0) 

yüzden IE başarısız kodu olmalıdır çünkü:

if(event.clientX < 0 || event.clientY < 0) 
+0

Hayır! alert (event.clientY + ":" + event.clientX); beni tanımsız veriyor. Sorgudaki yazım hatası için teşekkürler, şimdi düzenledim ama cevabınız hiçbir şeyi çözmüyor. –

+0

@psyLogic gaemaf, sorunun bir önceki yükleme bölümünde yanıtladı. –