Подтвердить что ты не робот

Лучший способ запросить подтверждение у пользователя перед выходом на страницу

В настоящее время я создаю страницу регистрации, где, если пользователь уходит, я хочу вскрыть окно CSS, спрашивающее его, уверен ли он или нет. Я могу выполнить этот подвиг, используя флажки подтверждения, но клиент говорит, что они слишком уродливы. Я пытался использовать unload и beforeunload, но оба не могут остановить перенаправление страницы. Используя их для событий, я возвращаю false, так что, возможно, есть способ отменить, кроме возвращения false?

Еще одно решение, которое у меня было, перенаправило их на другую страницу с моим всплывающим окном, но проблема в том, что если они захотят покинуть страницу, и это не ошибка, они теряют страницу, которую они изначально пытались пойти. Если бы я был пользователем, это меня раздражало бы.

Последнее решение было реальным всплывающим окном. Единственное, что мне не нравится в том, что у главного winow будет страница назначения, в то время как у pop появится моя страница. По-моему, это выглядит несвязным. Кроме того, я буду беспокоиться о блокировщиках всплывающих окон.

Просто добавьте комментарии. Я понимаю, что раздражать, чтобы пользователи не покидали страницу, и, на мой взгляд, это не должно быть сделано. В данный момент я использую окно подтверждения. Что происходит, так это то, что он фактически не "предотвращает" пользователя уйти, что на самом деле хочет сделать клиент, - это предложение, если у пользователя возникают сомнения в регистрации. Если пользователь находится на полпути через регистрационный процесс и уезжает по какой-то причине, клиент хочет предложить пользователю бесплатный купон на семинар (этот клиент продает семинары), чтобы надеяться убедить пользователя зарегистрироваться. У клиента создается впечатление, что, поскольку пользователь уже находится на форме, он думает о регистрации, и поэтому, возможно, семинар того, что он регистрирует, станет последним шагом, чтобы заставить пользователя зарегистрироваться. В идеале мне не нужно препятствовать тому, чтобы пользователь ушел, что было бы так же хорошо, и, на мой взгляд, лучше, если я могу приостановить процесс разгрузки. Может быть, команда сна? Мне действительно не нужно держать пользователя на странице, потому что в любом случае они будут уходить, чтобы перейти на другую страницу.

Кроме того, как заявили люди, это титульный титул, поэтому, если кто-то знает лучший, я бы очень признателен, если бы они могли изменить название на что-то, что не было приглашением спамера.

4b9b3361

Ответ 1

Как только я увидел слова "запретить пользователю", я начал вопить в агонии. Никогда предотвращать пользователя, только помогать им.

Если они видят вашу страницу регистрации и убегают, , что их выбор. Выскажите окно подтверждения javascript, если они уже заполнили некоторые данные (потому что они могут случайно проплыть), но оставьте это на этом. Если они не коснулись формы, оставьте их в покое - они не хотят заполнять вашу форму.

Посмотрите на другие методы привлечения пользователей. Если ваша форма огромна и страшна, разделите ее на простые управляемые куски или еще лучше, упростите так много, что пользователь дает вам только данные, когда вам это нужно. Например, вам может не понадобиться их адрес, пока вы не захотите публиковать что-то для них.

Разбирая его на несколько частей, вы можете подключить их к простой форме, и как только они вложили это время, они с большей вероятностью продолжит процесс.

Но не преследуйте пользователей. Если они не хотят регистрироваться, приставать к ним с помощью всплывающих окон и диалогов jaavscript, они просто преследуют их полностью.

С учетом этого, предполагая, что вы просто пытаетесь остановить людей, заполняющих формы, есть несколько вариантов, чтобы искренне помогать людям:

  • Обнаруживает, изменилась ли форма и спросит их простое сообщение confirm().

    Это все, что вы можете сделать. CSS-pop-in просто не работает, потому что вы не можете контролировать * расположение окна в событии разгрузки.

    * Вы можете поместить прослушиватель событий на всех ваших страницах, чтобы убрать что-то, чтобы проверить форму, но это помогает только в том случае, если пользователь нажимает на одну из этих ссылок. Это не поможет, если, например, пользователь нажимает или закрывает окно. Вы можете делать как CSS, так и javascript, но в итоге вы получаете немного беспорядка.

  • Сохраняйте состояние формы за кулисами.

    Расширение до # 1. Вместо того, чтобы ссориться с пользователем, отпустите их туда, где они хотят, но сохраните содержимое формы либо в сеансе, либо в файле cookie (если он подойдет) и поместите что-то на страницу (например, оранжевые полосы запроса SO вверху страницы), который напоминает им, что они начали заполнять форму и возвращают ссылку на форму.

    Когда они нажимают эту ссылку, вы загружаете данные из файла cookie (или сеанса) обратно в форму и позволяете им продолжать. Это дает ясное преимущество, позволяя им делать то, что им нравится на вашем сайте, и сохраняет данные в безопасности.. ish.

    Если они не вернутся, а их cookie/session истечет, то это их вина. Вы можете привести только лошадь к воде. Это не ваша работа, чтобы заставить его пить.

Ответ 2

Не делай этого.

Но если вы хотите, попробуйте это. Записывайте позиции мыши и обнаруживайте быстрый восходящий удар - пользователь достигает BIG X или верхний левый или верхний правый. Теперь может быть ваш шанс на ненавязчивую коробку на экране.

Я видел это приложение в Интернете, и это зло.

Ответ 3

Если вы хотите уловить ссылки, вы можете переписать ссылки на странице, чтобы перейти к "вы действительно хотите уйти?". javascript, передавая целевой URL в качестве аргумента.

Если вы хотите, чтобы пользователи не использовали свою кнопку "Назад" или не позволяли им добавлять другой адрес в адресную строку, остановить. Остановить. (1) Браузеры были сделаны для предотвращения такого рода неприятного поведения и (2) Даже если они позволили это, см. Последние два слова (1). Это чертовски грубо. Ваш сайт не является особенным, независимо от того, насколько он крут, как вы думаете.

Ответ 4

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

Используйте JavaScript, подобный этому, для отображения подтверждения подтверждения.

Ответ 5

Вот только несколько подходов, о которых я мог подумать, но они не лишены недостатков:

Whatcha Gonna Do technique Определите позицию мыши, идущую к краям браузера, так как пользователь может закрыть вкладку, окно, вернуться назад, переместиться в другое место среди других вещей. Если да, немедленно сообщите им, что это может быть ошибкой, и они собираются проиграть что-то очень ценное. Однако улов здесь заключается в том, что вы не знаете точно, каковы были их намерения, и вы можете разоблачить их этим всплывающим окном. Кроме того, они могут использовать кучу ярлыков, таких как Ctrl+W и т.д., Чтобы сделать то же самое.

У вас есть технология Got Mail Если вам удалось получить адрес электронной почты пользователя, прежде чем они закрыли страницу, вы попали в джек-пот. Как только пользователь вводит что-либо в поле электронной почты, а затем оставляет его, немедленно отправьте его на сервер с помощью AJAX. Сохраните состояние страницы в localStorage или на сервере, используя файл cookie или что-то еще, чтобы его можно было воссоздать позже. Каждые пару часов отправляют им электронное письмо, дающее им прямую ссылку на ранее сохраненную форму и, возможно, со специальными предложениями на этот раз.

История повторяет саму технику Тогда есть печально известная манипуляция историями, в которой вы держите стек текущей страницы в истории документа, так что обратная кнопка делает фактически бесполезной.

Не помещайте все свои яйца в один метод корзины Еще одна техника с моей точки зрения состоит в том, чтобы создать несколько окон в фоновом режиме с помощью регистрационной формы и сохранить их все в синхронизации, когда любые поля в любом из них будут изменены. Это классическая техника и действительно ставит "не класть все яйца в одну корзину", говоря в реальном использовании.

Еще одно преимущество этой удивительной техники - даже если пользователь закрывает одно из окон, а затем сталкивается с идентичным клонированным окном со всеми полями, которые они заполняют обновленным населением, они могут запутаться и подумать, что они никогда не закрыл страницу. И угадайте, что, на этот раз они могут просто пойти и заполнить регистрационную форму. Но вы должны быть осторожны с этим, поскольку что-то большее, чем 2 или 3 клона, сделает очевидным, что происходит.

Техника Winner Другой способ - рассказать каждому пользователю, что они являются X-м посетителем сайта, и использовать хороший округленный номер для X, например 1000, 10000, 50000 и т.д. Скажите им, что они могут претендовать на свой приз после регистрации на сайт. Представьте, как каждый пользователь чувствует себя, когда приземляется на ваш сайт. Призы не должны быть осязаемыми, это могут быть просто бесплатные купоны, которые вы найдете на межтрубках.

Где вы хотите сегодня? техника 1 Это в основном отрыв от вашего ответа. Используйте document.location.href = 'some url' в своем обратном вызове onbeforeunload, чтобы перейти на другую страницу до ее выгрузки. Дд >

1 Только Firefox.

Примечание: здесь нет решения для серебряной пули, если вы не написали свой собственный браузер своими собственными политиками безопасности, но это все оптимизации, которые вы можете сделать, чтобы сделать это совершенно невозможным для пользователей.

Ответ 6

Не все браузеры поддерживают модальное всплывающее окно, без которого ваша страница будет идти вперед и перемещаться в любом случае.

Это действительно ужасное требование. Такого рода требования, которые разумны в настольном приложении, но целая необоснованная особенность веб-сайта. Представьте, что вы не можете покинуть сайт.

Ответ заключается либо в использовании ужасного поля подтверждения, либо при его компиляции. Или не просите пользователя ввести слишком много данных на страницу. Используйте пошаговый ввод данных стиля мастера, потери из-за случайной навигации минимизируются.

Ответ 7

Вы можете изменить значение URL-адреса, используя document.location.href = "www.website.com"

Ответ 8

Я могу выполнить этот подвиг, используя флажки подтверждения, но клиент говорит, что они слишком уродливы.

Если проблема заключается в уродстве стандартных всплывающих окон JS, попробуйте что-то вроде этого: http://www.sohtanaka.com/web-design/inline-modal-window-w-css-and-jquery/

Кроме того, я второй, что говорит большинство людей: делайте это с особой осторожностью, если вы не хотите терять пользователей.