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:
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.
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:
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. 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.
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.