Сообщение При Выходе
#1
Отправлено 13 Август 2013 - 20:39
Нужно всплывающее окно, которое появляется у посетителя, если он что-то положил в корзину, но, так и не сделав заказ, покидает сайт с предложением оформить заказ или закрыть сайт
как сделать?
#2
Отправлено 13 Август 2013 - 21:00
#3
Отправлено 13 Август 2013 - 22:02
#4
Отправлено 14 Август 2013 - 00:31
$(window).unload(function() { if($('#cartInfo #cartSum .num').length) { if(confirm('У вас имеются товары в корзине, хотите оформить заказ?')) { document.location = $('#cartInfo > a').attr('href'); } } });
добавив данный код в файл main.js
К сожалению, заставить работать корректно данное событие во всех браузерах - нельзя. В каких-то оно будет работать, в каких-то не будет.
#5
Отправлено 14 Август 2013 - 21:56
а можно, чтобы всплывало окно, которое всплывает, когда кладешь товар в корзину, типа продолжить покупки или перейти в корзину.
вот точно такое же, только с другим текстом (оформить заказ или покинуть сайт), чтобы появлялось тогда, когда человек закрывает сайт?
#6
Отправлено 15 Август 2013 - 00:24
window.onbeforeunload = function (event) { var event = event || window.event; var message = $('#cartSum .num').length ? 'У вас имеются товары в корзине, хотите оформить заказ?' : null; if(event) { event.returnValue = message; } return(message); };
Данный функционал по сути будет отличаться в разных браузерах, так как это действие не имеет спецификации. Действия которые вы описываете - реализовать нельзя. Вся работа по информированию об уходе с страницы - накладывается на сам браузер. Повлиять на данную работу или затруднительно, а местами невозможно.
#7
Отправлено 13 Январь 2014 - 14:25
Сake (15 Август 2013 - 00:24) писал:
window.onbeforeunload = function (event) { var event = event || window.event; var message = $('#cartSum .num').length ? 'У вас имеются товары в корзине, хотите оформить заказ?' : null; if(event) { event.returnValue = message; } return(message); };
Данный функционал по сути будет отличаться в разных браузерах, так как это действие не имеет спецификации. Действия которые вы описываете - реализовать нельзя. Вся работа по информированию об уходе с страницы - накладывается на сам браузер. Повлиять на данную работу или затруднительно, а местами невозможно.
В Firefox работает, но не пишет требуемое сообщение. Просто пишет, что введенные данные могут не сохраниться.
В Опера не работает.
В ИЕ пишет: "Вы действительно хотите покинуть страницу? Сообщение страницы: null" Выдает это сообщение и на внутренние переходы, и на закрытие страницы.
В Хроме пишет: "Подтвердите переход null Вы действительно хотите покинуть эту страницу?", причем не на закрытие, а на внутренний переход. На закрытие ничего не пишет.
Получается очень нестабильный вариант. Есть способы заставить его работать более предсказуемо?
#8
Отправлено 14 Январь 2014 - 02:03
window.onbeforeunload = function (event) { if($('#cartSum .num').length && event) { event.returnValue = 'У вас имеются товары в корзине, хотите оформить заказ?'; return(message); } };
#9
Отправлено 21 Январь 2014 - 19:24
Результаты проверки такие:
Firefox - никакой реакции.
Chrome - показывает это сообщение при внутренних переходах и при закрытии страницы.
Opera - никакой реакции.
IE показывает это сообщение при внутренних переходах и при закрытии страницы.
Скажите, пожалуйста, можно ли сделать так, чтобы этот скрипт срабатывал только на закрытие страницы, игнорируя внутренние переходы? Пусть не со всех браузерах, да пусть даже хотя бы в одном, но только на закрытие страницы. Потому что когда окошко вылазит при внутренних переходах, эффект получается обратный - только мешает делать покупки
#10
Отправлено 22 Январь 2014 - 01:13
window.unload = true; window.onbeforeunload = function(event) { if(parseInt($('#cartSum span').text()) && event && window.unload) { return('У вас имеются товары в корзине, хотите оформить заказ?'); } }; $('a').click(function() { window.unload = false; }); $('form').submit(function() { window.unload = false; });
#11
Отправлено 22 Январь 2014 - 15:52
Firefox - показывает при внутреннем переходе и при закрытии страницы.
Хром то же самое.
ИЕ то же самое.
Опера ничего не показывает.
#12
Отправлено 22 Январь 2014 - 23:42
#13
Отправлено 23 Январь 2014 - 10:07
#14
Отправлено 24 Январь 2014 - 00:19
window.unload = true; window.onbeforeunload = function(event) { if(parseInt($('#cartSum span').text()) && event && window.unload) { return('У вас имеются товары в корзине, хотите оформить заказ?'); } }; $('a').click(function() { window.unload = false; }); $('form').submit(function() { window.unload = false; });
на следующий
$(function() { window.unload = true; window.onbeforeunload = function(event) { if(parseInt($('#cartSum span').text()) && event && window.unload) { return('У вас имеются товары в корзине, хотите оформить заказ?'); } }; $('a').click(function() { window.unload = false; }); $('form').submit(function() { window.unload = false; }); });
#15
Отправлено 24 Январь 2014 - 17:29
Теперь другая проблема - сообщение показывается при выборе фильтра (в левом столбике) Можно с этим что-то сделать?..
#16
Отправлено 25 Январь 2014 - 01:56
$(function() { window.unload = true; window.onbeforeunload = function(event) { if(parseInt($('#cartSum span').text()) && event && window.unload) { return('У вас имеются товары в корзине, хотите оформить заказ?'); } }; $('a').click(function() { window.unload = false; }); $('form').submit(function() { window.unload = false; }); });
заменить на следующий
$(function() { window.unload = true; window.onbeforeunload = function(event) { if(parseInt($('#cartSum span').text()) && event && window.unload) { return('У вас имеются товары в корзине, хотите оформить заказ?'); } }; $('a, .contentTbodySearchFilterBlock input').click(function() { window.unload = false; }); $('form').submit(function() { window.unload = false; }); });
#17
Отправлено 25 Январь 2014 - 10:15
#18
Отправлено 26 Январь 2014 - 12:03
И еще, возможно ли изменить окно на свое собственное (с картинками, шрифтами и т.п.)?
Спасибо!
#19
Отправлено 28 Январь 2014 - 03:59
#20
Отправлено 28 Январь 2014 - 14:44
Хотя, конечно, с фильтрами тоже немного грустно получается. Положил чел в корзину, ищет что-то еще, а ему "купи" да "купи" :-)
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных