ventana sesion seguro que pestaña pagina navegador mensaje evento esta desea confirmacion cerrar antes alerta abandonar javascript javascript-events

sesion - mensaje de confirmacion javascript php



La mejor manera de pedir confirmación al usuario antes de abandonar la página (8)

Actualmente estoy creando una página de registro en la que, si el usuario se va, quiero que aparezca un cuadro de CSS preguntándole si está seguro o no. Puedo lograr esta hazaña usando cuadros de confirmación, pero el cliente dice que son demasiado feos. Intenté usar descargar y beforeunload, pero ninguno puede detener el redireccionamiento de la página. Usando esos para eventos, devuelvo falso, así que tal vez haya una forma de cancelar otra cosa que no sea devolver falsa.

Otra solución que tuve fue redirigirlos a otra página que tiene mi ventana emergente, pero el problema es que si quieren abandonar la página, y no fue un error, pierden la página que originalmente intentaban. ir a. Si fuera un usuario, eso me irritaría.

La última solución fue una ventana emergente real. Lo único que no me gusta de eso es que el winow principal tendrá su página de destino mientras que el pop tendrá mi página. En mi opinión, parece disjunto. Además de eso, estaría preocupado por los bloqueadores de ventanas emergentes.

Solo para agregar a los comentarios de everyones. Entiendo que es irritante evitar que los usuarios salgan de la página, y en mi opinión no debería hacerse. Ahora mismo estoy usando un cuadro de confirmación en este punto. Lo que sucede es que en realidad no se trata de "impedir" que el usuario se vaya, lo que el cliente realmente quiere hacer es hacer una sugerencia si el usuario tiene dudas sobre el registro. Si el usuario está a la mitad del proceso de registro y se va por alguna razón, el cliente desea ofrecerle un cupón gratis a un seminario (este cliente está vendiendo seminarios) para convencer al usuario de que se registre. El cliente tiene la impresión de que, dado que el usuario ya está en el formulario, está pensando en registrarse y, por lo tanto, tal vez un seminario de lo que está registrando sea el impulso final para que el usuario se registre. Idealmente, no tengo que evitar que el usuario se vaya, lo que sería igual de bueno, y en mi opinión es mejor si puedo pausar el proceso de descarga. Tal vez un comando de dormir? Realmente no tengo que mantener al usuario en la página porque de cualquier forma se irán para ir a una página diferente.

Además, como la gente ha declarado, este es un título terriable, así que si alguien conoce uno mejor, realmente apreciaría que pudieran cambiar el título a algo que no invitara a los spammers.


Puedo lograr esta hazaña usando cuadros de confirmación, pero el cliente dice que son demasiado feos.

Si el problema es la fealdad de los cuadros emergentes JS estándar, pruebe algo como esto: http://www.sohtanaka.com/web-design/inline-modal-window-w-css-and-jquery/

Aparte de eso, considero lo que la mayoría de la gente dice: hazlo con extrema precaución si no quieres perder usuarios.


No todos los navegadores admiten una ventana emergente modal, sin la cual su página podría continuar y navegar de todos modos.

Este es un requisito realmente horrible. El tipo de requisito que es razonable en una aplicación de escritorio pero toda la característica no razonable de un sitio web. Imagine que no puede abandonar un sitio web.

La respuesta es usar el cuadro de confirmación horrible y agruparlo. O no le pidas al usuario que ingrese demasiados datos por página. Utilice una entrada de datos de estilo asistente paso a paso, la pérdida debido a la navegación accidental se reduce al mínimo.


Puede cambiar el valor de la url usando document.location.href = "www.website.com"


Si quiere atrapar enlaces, puede volver a escribir los enlaces en la página para ir a "realmente desea irse". función javascript, pasando la URL de destino como argumento.

Si desea evitar que los usuarios usen su botón "Atrás", o evitar que pongan otra URL en la barra de direcciones, deténgase. Parar ahora. (1) Los navegadores se hicieron para evitar exactamente ese tipo de comportamiento desagradable, y (2) Incluso si lo permitieron, vea las últimas dos palabras de (1). Es malditamente grosero . Su sitio no es tan especial, no importa cuán genial piense que es.


Tan pronto como vi las palabras "prevenir al usuario" comencé a llorar en agonía. Nunca evite al usuario, solo ayúdelo.

Si ven su página de registro y se escapan, esa es su elección . Coloca un cuadro de confirmación javascript si ya han rellenado algunos datos (porque podrían estar navegando accidentalmente) pero déjalo así. Si no han tocado el formulario, déjalos en paz; no quieren completar su formulario.

Mire otros métodos de atraer a los usuarios. Si su formulario es enorme y atemorizante, divídalo en fragmentos simples y manejables, o mejor aún, simplifique tanto que el usuario solo le proporcione datos cuando los necesite. Por ejemplo, es posible que no necesite su dirección hasta que quiera publicar algo para ellos.

Al dividirlo en varias partes, puede engancharlas con una forma simple y, una vez que hayan invertido ese tiempo, es más probable que continúen el proceso.

Pero no molestes a los usuarios. Si no quieren registrarse, molestarlos con ventanas emergentes y diálogos jaavscript simplemente los expulsará del sitio por completo.

Teniendo esto en cuenta, suponiendo que solo está tratando de evitar que las personas rellenen formularios a medias, hay un par de opciones para ayudar genuinamente a las personas:

  1. Detecta si el formulario ha cambiado y pídeles un simple mensaje de confirm() .

    Esto es todo lo que puedes hacer. Un "pop-in" de CSS simplemente no funcionará porque no puede controlar * la ubicación de la ventana en el evento de descarga.

    * Puede poner un oyente de eventos en todos los enlaces de su página para activar algo para verificar el formulario, pero esto solo ayuda si el usuario hace clic en uno de esos enlaces. No ayudará si, por ejemplo, el usuario hace clic atrás o cierra la ventana. Podrías hacer tanto CSS como javascript, pero terminarás un poco desordenado.

  2. Persiste el estado de la forma detrás de las escenas.

    Una extensión para # 1. En lugar de pelear con el usuario, déjelos ir a donde quieran pero guarde el contenido del formulario en la sesión o en la cookie (si cabe) y coloque algo en la página (como las barras de solicitud de SO en la parte superior de la página) ) que les recuerda que han comenzado a completar un formulario y les da un enlace al formulario.

    Cuando hacen clic en ese enlace, vuelves a cargar los datos de la cookie (o sesión) en el formulario y los dejan continuar. Esto tiene el claro beneficio de dejarles hacer lo que quieran en su sitio y mantener los datos seguros ... ish.

    Si no vuelven y su cookie / sesión expira, es su culpa. Solo puedes llevar un caballo al agua. No es tu trabajo obligarlo a beber.


window.onbeforeunload = function() { return "Message"; };

Use un JavaScript como este para mostrar un mensaje de confirmación de ausencia .


Aquí hay solo un par de enfoques en los que podría pensar, pero no carecen de defectos:

Técnica de Whatcha Gonna Do
Detecta la posición del mouse yendo hacia los bordes del navegador, ya que el usuario podría cerrar la pestaña, la ventana, retroceder, navegar en otro lugar, entre otras cosas. Si es así, inmediatamente sugiérales que eso puede ser un error y van a perder algo muy valioso. Sin embargo, la trampa aquí es que no sabes con certeza cuáles fueron sus intenciones y que podrías molestarlos con esa ventana emergente. Además, pueden usar un grupo de atajos como Ctrl + W, etc. para hacer lo mismo.
Tienes la técnica de Mail
Si logró obtener la dirección de correo electrónico del usuario antes de que cerraran la página, ha alcanzado un premio mayor. Tan pronto como el usuario escriba algo en el buzón de correo electrónico y luego lo abandone, envíelo inmediatamente al servidor usando AJAX. Guarde el estado de la página en localStorage o en el servidor utilizando una cookie o algo así para que pueda volver a crearse más tarde. Cada dos horas, envíeles un correo electrónico dándoles un enlace directo al formulario previamente guardado, y tal vez con ofertas especiales esta vez.
La historia se repite en sí misma
Luego está la infame manipulación de la historia en la que se continúa apilando la página actual en el historial del documento para que el botón de retroceso sea inútil.
No ponga toda su técnica de huevos en una cesta
Otra técnica en la parte superior de mi cabeza es crear varias ventanas en el fondo con el formulario de registro y mantenerlas sincronizadas cuando cambia cualquiera de los campos de cualquiera. Esta es una técnica clásica y realmente pone el dicho "no poner todos los huevos en una canasta" en el uso de la vida real.

Otra ventaja de esta asombrosa técnica es que, incluso si el usuario cierra una de las ventanas, y luego se encuentra con una ventana clonada idéntica con todos los campos que llenaron actualizados, podrían confundirse y pensar que nunca cerraron la página. . Y adivina qué, esta vez podrían seguir adelante y completar el formulario de registro. Pero debes ser precavido con esto, ya que más de 2 o 3 clones harán que sea obvio lo que está sucediendo.

Tu eres la técnica ganadora
Otra técnica es decirle a cada usuario que es el X visitante en el sitio y usar un buen número redondeado para X como 1000, 10000, 50000, etc. Dígales que pueden reclamar su premio una vez que se registren en el sitio. Imagine lo especial que se siente cada usuario cuando aterriza en su sitio. El premio no tiene que ser nada tangible, simplemente pueden ser cupones gratis que encuentres en los intersticios.
¿Dónde quieres ir hoy? técnica 1
Esto es básicamente una estafa de tu respuesta. Use document.location.href = ''some url'' dentro de su devolución de llamada antes de descargar para navegar a una página diferente antes de descargarla.

1 solo Firefox.

Nota: no hay una solución milagrosa aquí a menos que escriba su propio navegador con sus propias políticas de seguridad, pero todas estas son optimizaciones que puede hacer para que sea completamente imposible para los usuarios abandonar.


No lo hagas

Pero si quieres, intenta esto. Registre las posiciones del mouse y detecte un rápido empuje hacia arriba: el usuario está buscando la BIG X o la parte superior izquierda o superior derecha. Ahora podría ser su oportunidad de tener una caja discreta en la pantalla.

He visto este implemento en la web y es malo.