2010-08-30 16 views
0

Le morceau de code suivant alerte la position de la souris dans IE, mais dans Firefox et d'autres navigateurs, il alerte "non défini".Problème avec la gestion des événements onbeforeunload dans firefox

<body onbeforeunload="test(event);"> 

function test(e){ 
    if (!e) var e = window.event; 
    alert(e.clientX); 
} 

Le code ci-dessus est d'obtenir la position de la souris lorsque la fenêtre du navigateur est closed.Please indiquerons comment je dois modifier le code ci-dessus pour retourner la position de la souris dans tous les navigateurs

Mon exigence est d'ouvrir une nouvelle fenêtre seulement lorsqu'un navigateur est fermé et PAS lors de l'actualisation de la page. Existe-t-il un autre moyen par lequel le navigateur peut être détecté dans tous les navigateurs?

+0

http://stackoverflow.com/questions/7389554/crossbrowser-onbeforeunload/10812296 – Aelios

Répondre

0

ajouter simplement gestionnaire mousemove qui stockera position de la souris dans la variable, comme ceci:

<body onbeforeunload="test(event);" onmousemove="storeMouse(event);"> 

var mouse; 
function storeMouse(e) 
{ 
    if(!e) e = window.event; 
    mouse = {clientX: e.clientX, clientX:e.clientY}; 
} 


function test(e){ 
    alert(mouse.clientX); 
} 
+0

Merci Alex, le retour du code ci-dessus La souris coïncide.Mais je ne peux pas généraliser une règle pour cela.Une fois que je ferme le navigateur, clientX et clientY alertes (0,345) .La prochaine fois qu'il alerte (372,45) .Le coorcinates à côté du bouton de fermeture (X) du navigateur est nécessaire pour généraliser quelque chose comme le code ci-dessous pour travailler dans FF: if ((window.event.clientX <0 || window.event.clientY <0) {window.open ("...") } S En effet, je reçois des plages de coordonnées extrêmement différentes chaque fois que la souris pointe sur le bouton de fermeture, je ne peux pas écrire une condition similaire à celle ci-dessus. S'il vous plaît pouvez-vous faire la lumière sur cela? – Eifel