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

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

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

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

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

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

22
задан Gordon Gustafson 25 May 2010 в 23:31
поделиться

8 ответов

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

Но если хотите, попробуйте это. Записывайте положения мыши и обнаруживайте быстрый толчок вверх - пользователь тянется к БОЛЬШОМУ X или верхнему левому или верхнему правому углу. Возможно, теперь у вас есть шанс получить ненавязчивую рамку на экране.

Я видел это орудие в сети, и это зло.

7
ответ дан 29 November 2019 в 04:33
поделиться
window.onbeforeunload = function() { return "Message"; };

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

2
ответ дан 29 November 2019 в 04:33
поделиться

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

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

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

1
ответ дан 29 November 2019 в 04:33
поделиться

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

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

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

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

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

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

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

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

1 Только для Firefox.

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

2
ответ дан 29 November 2019 в 04:33
поделиться

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

0
ответ дан 29 November 2019 в 04:33
поделиться

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

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

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

0
ответ дан 29 November 2019 в 04:33
поделиться

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

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

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

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

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

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

  1. Определите, изменилась ли форма, и задайте им простой confirm () сообщение.

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

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

  2. Сохраняйте состояние формы за кадром.

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

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

    Если они не вернутся и срок их cookie / сеанса истечет, это их вина. Можно только лошадь к воде привести. Заставлять его пить - не твоя работа.

28
ответ дан 29 November 2019 в 04:33
поделиться

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

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

4
ответ дан 29 November 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: