yes personalizado ejemplo javascript firefox firefox4

personalizado - onbeforeunload javascript



Firefox 4 onBeforeUnload mensaje personalizado (4)

Además de la respuesta anterior, he mejorado la solución.

He usado jquery aquí. también puedes usar funciton de javascript predeterminado.

$(window).bind(''beforeunload'', function() { if(/Firefox[///s](/d+)/.test(navigator.userAgent) && new Number(RegExp.$1) >= 4) { if(confirm("Are you Sure do you want to leave?")) { history.go(); } else { window.setTimeout(function() { window.stop(); }, 1); } } else { return "Are you Sure do you want to leave?"; } });

Probado y trabajando en Firefox 11 también. :)

En Firefox 3 , pude escribir una ventana emergente de confirmación personalizada con:

window.onbeforeunload = function() { if (someCondition) { return ''Your stream will be turned off''; } }

Ahora en Firefox 4 , no muestra mi mensaje personalizado. El mensaje predeterminado que proporciona ni siquiera es exacto a lo que hace mi aplicación.

¿Se puede anular este mensaje predeterminado?


De MDN :

Tenga en cuenta que en Firefox 4 y versiones posteriores, la cadena devuelta no se muestra al usuario. Vea el error 588292 .

Este "error" es en realidad una característica (algo cuestionable) ... así que no hay forma de mostrar el mensaje en Firefox 4. Si crees que debería cambiarse, comenta ese error para que los desarrolladores de Firefox sepan que la gente realmente quiere ser capaz de mostrar una cadena personalizada


Intente implementarlo con un mensaje de confirmación,

window.onbeforeunload=function(){ return confirm("Are you sure??"); }

por supuesto, cuando el usuario confirma, se muestra el mensaje FF4, por lo que quizás sea mejor mostrarlo una vez por sitio al iniciar sesión / visitar. Una cookie debería hacer el truco.


Mi solución es mostrar alerta antes de la descarga:

window.onbeforeunload=function() { if ( /Firefox[///s](/d+)/.test(navigator.userAgent) && new Number(RegExp.$1) >= 4) { alert("Blah blah. You have to confirm you are leaving this page in the next dialogue."); } return "Blah blah."; }

(Muestra dos diálogos en Firefox, un diálogo en otro lugar).