ich ein neues Fenster öffnen mit window.open()‚beforeunload‘ Ereignis nur ausgelöst, in Firefox, wenn ich auf der Seite klicken
Und dann einen Skript (ein Ajax-Aufruf) Ich versuche zu laufen, wenn der Benutzer das schließt geöffnetes Fenster.
Die offene funktioniert gut, aber der Code wie in FF erwartet funktioniert nicht, wenn ich versuche, das Fenster
Hier ist mein Code
<?php
echo '<div id="iframecontainer"><iframe name="meeting-iframe" frameborder="0" style="width:80%;height:80%" src="' . $link . '"></iframe></div>';
?>
<script>
(function ($) {
$(document).ready(function() {
// Variables from php
var event_id = '<?php echo $event_id; ?>';
var user_id = '<?php echo $current_user->uid; ?>';
//////////////////////////////////////////////////////////////////////
// Run function before window is closed,doesn't work as expected in FF
window.addEventListener("beforeunload", function (e) {
var e = e || window.event;
var message = 'Are you sure you want to leave the meeting?';
if(e) {
e.returnValue = message;
}
// Post to get meeting info
$.post('/easymeet/getInfo/' + event_id).done(function(meetResponse) {
//ajax callback ,I have hidden the code here as I don't think its relevent to the question
});
});
});
}(jQuery))
Ich lade ein iframe in meinem Fenster zu schließen und die Seite, die der iframe holt, ist alles Flash (nur um darauf hinzuweisen).
Ich teste in IE, Chrome und Firefox Was passiert hier ist vorunload wird ausgelöst und funktioniert gut in IE und Chrome.
Aber in Firefox Ich habe manuell zu Klick auf der HTML oder eine Interaktion tun. Wenn ich versuche, das Fenster zu schließen, ohne etwas zu tun, scheint das "beforeunload" -Ereignis überhaupt nicht ausgelöst zu werden.
Irgendeine Lösung zu diesem? –
@ IonicăBizău hast du irgendeine Lösung gefunden? Ich kratze meine Haare – slier
@slier Nein, es ist einfach die Art und Weise, wie Firefox funktioniert (es sei denn, Sie ändern die 'about: config' - wie unten erwähnt, die Sie wahrscheinlich nicht interessiert sind). Ich fürchte, es gibt keine Möglichkeit, das zu erzwingen. –