2017-03-20 5 views
0

Ich möchte eine Warnmeldung anzeigen, wenn der Browser den Fokus verliert. So, hier ist mein Code:window.blur - Alarm-Box zeigt weiterhin

$(window).blur(function(e) { 
    alert("Your browser lost focus"); 
    e.stopPropagation(); 
}); 

jedoch das Warnfeld halte Pop-up, sagt, wenn ich Alt + Tab verwenden, um ein anderes Fenster zu wechseln. Kann mir jemand helfen, mir zu sagen, was falsch ist?

+0

suchen Sie 'e.preventDefault()' Standardaktion – guradio

+0

@guradio Dank –

+0

Check this out http zu verhindern: // Stackoverflow .com/questions/5963669/whats-the-difference-zwischen-ereignis-stoppropagation-and-event-preventdefault –

Antwort

3

Mit $(window).blur - Sobald ein alert Fenster erscheint, das alert Box selbst verursacht Sie Fokus auf Ihrem Browser zu verlieren. Dies ist sehr unempfohlen.

Wenn Sie nur verlieren Fokus testen wollen, sollten Sie verwenden:

console.log("Your browser lost focus"); 

Andernfalls halten Sie dieses an die Benutzer der Website - es wird eine Endlosschleife von alert Fenster verursachen.

+2

ProTip: Gewöhnen Sie sich daran, 'alert()' zum Debuggen zu verwenden. Sie werden 'console.log()' und 'console.error()' finden, wird Ihr Leben viel besser machen. https://developer.mozilla.org/en-US/docs/Web/API/Console – cloudworks

0

Versuchen Sie stattdessen

$('selector').on(eventType, function (event) { 
    alert(('cancelable' in event)); //will return true 
    alert(event.cancelable);  //will return true if event can be cancelled 
    //NOTE: Firefox mistakenly always returns true 
}); 
0
TRY THIS DEMO, ALERT ON LOST FOCUS, WHEN LOST FOCUS TRIGGER OR CALL ANY ACTION 

TRY THIS FIDDLE