javascript - body - title css
¿Cómo impido que una página se descargue(navegue) en JS? (6)
¿Alguien sabe cómo evitar que una página vuelva a cargar o navegar?
jQuery(function($) { /* global on unload notification */ warning = true; if(warning) { $(window).bind("unload", function() { if (confirm("Do you want to leave this page") == true) { //they pressed OK alert(''ok''); } else { // they pressed Cancel alert(''cancel''); return false; } }); } });
Estoy trabajando en un sitio de comercio electrónico en este momento, la página que muestra tus futuros pedidos tiene la capacidad de alterar las cantidades de artículos ordenados usando los botones +/-. Cambiar las cantidades de esta manera esto no cambia realmente el orden en sí, tienen que presionar confirmar y por lo tanto, comprometer una acción positiva para cambiar el orden.
Sin embargo, si han cambiado las cantidades y se han alejado de la página, me gustaría advertirles que lo están haciendo en caso de que sea un accidente, ya que las cantidades modificadas se perderán si navegan o actualizan la página.
En el código anterior, estoy usando una variable global que será falsa por defecto (solo es verdad para las pruebas), cuando se cambia una cantidad, actualizaré esta variable para que sea verdadera, y cuando confirmen los cambios, la estableceré en falso .
Si la advertencia es verdadera y la página está descargada, les ofrezco un cuadro de confirmación, si dicen que no les gustaría permanecer en esta página, debo detener la descarga. return false no funciona, aún permite al usuario navegar (las alertas solo están disponibles para la depuración)
¿Algunas ideas?
Este código advierte según la sugerencia de Natalie, pero desactiva la advertencia si se envió un formulario en la página. Utiliza JQuery.
var warning = true;
window.onbeforeunload = function() {
if (warning) {
return "You have made changes on this page that you have not yet confirmed. If you navigate away from this page you will lose your unsaved changes";
}
}
$(''form'').submit(function() {
window.onbeforeunload = null;
});
Intenta usar e.preventDefault()
lugar de devolver falso. ''e'' sería el primer argumento para su descarga de devolución de llamada.
desea utilizar el evento onbeforeunload .
onbeforeunload
es el que quieres; su función "debe asignar un valor de cadena a la propiedad returnValue del objeto Event y devolver la misma cadena" . Consulte los documentos de Microsoft y Mozilla para obtener más información.
La cadena que devuelva será utilizada por el navegador para presentarle al usuario un cuadro de confirmación personalizado, lo que le permite negarse a permanecer allí si así lo desea. Tiene que hacerse de esa manera para evitar que los guiones maliciosos causen un ataque de denegación de navegador.
window.onbeforeunload = confirmExit;
function confirmExit()
{
return "You have attempted to leave this page. If you have made any changes to the fields without clicking the Save button, your changes will be lost. Are you sure you want to exit this page?";
}
window.onbeforeunload = function() {
if (warning) {
return ''You have made changes on this page that you have not yet confirmed.
If you navigate away from this page you will loose your unsaved changes'';
}
}
no es compatible con Chrome, safari y ópera