|
|
|
| Делаю добавления товара в корзину через js, столкнулся с такой проблемой: при нажатии "Добавить в корзину" товар добавляется, создается новое окно методом open() (имя ему дал win), все отлично, но если пользователь не закроет окно и нажмет еще раз "Добавить в корзину" то win.document.write() место перезаписи ДОПИШЕТ в то же окно, а нужно чтобы стер все что было в новом окне и написал другой текст, а не добавлял вниз страницы еще сообщений.
Суть проблемы см. на странице http://zakaz-viagra.ru/ru/product/dzhenerik_viagra, нажимаем "Добавить в корзину" затем не закрывая окно еще раз нажимаем "Добавить в корзину" и проблема будет на лицо.
Вот код JS:
$(function(){
$('a[href*=add_to_cart]').click(function(e){
e.preventDefault();
//тут проверка если окно win есть то все что в нем есть удалить
var idt=$(this).attr('href').replace(/^.{0,}\/add_to_cart\/([0-9]{1,3})$/i, "$1");
win=document.open('', 'win', 'top='+((screen.availHeight-240)/2)+',left='+((screen.availWidth-450)/2)+', width=450, height=200, menubar=0, toolbar=0,l ocation=0, directories=0, status=0, resizable=0, scrollbars=0');
if(!win)
return alert('трололо');
win.document.write('<html>...тут стер, а то очень длинно получается...</html>');
win.focus();
$(win.document.getElementById('mc')).click(function(){
win.close();
document.location.href='http://zakaz-viagra.ru/ru/shopping_cart';
});
$(win.document.getElementById('cl')).click(function(){
win.close();
});
$(win.document.getElementById('faq')).click(function(){
document.location.href='http://zakaz-viagra.ru/ru/article/faq';
win.close();
});
$(win.document.getElementById('dost')).click(function(){
document.location.href='http://zakaz-viagra.ru/ru/article/dostavka_i_oplata';
win.close();
});
$(win.document.getElementById('obrz')).click(function(){
document.location.href='http://zakaz-viagra.ru/ru/recall';
win.close();
});
$(win.document.getElementById('acii')).click(function(){
document.location.href='http://zakaz-viagra.ru/ru/article/akcii_i_skidki';
win.close();
});
});
});
|
| |
|
|
|
|
|
|
|
для: ntro123
(16.11.2012 в 18:48)
| | А зачем вообще новое окно для корзины? | |
|
|
|
|
|
|
|
для: confirm
(16.11.2012 в 19:04)
| | а как еще? да есть еще один вариант можно место нового окна сделать див на подобии того что появляется при нажатии на "Заказ в один клик" + айфрейм сувать и удалять на страницу, а так новое окно и все гуд, да и вообще какая разница? захотел все тоже самое но сделать через окно. а раньше было вообще ппц нажимаешь и он сразу без спроса кидает в корзину. а нужно чтобы давал пользователю выбор, в корзину перейти или куда, и т.п. | |
|
|
|
|
|
|
|
для: ntro123
(16.11.2012 в 19:15)
| | Какая разница говорите? Ну вот о первой бяке вы уже сами упомянули - о действиях пользователя.
Корзина, она на сервере, у клиента только информация о ней. Добавил товар пользователь - асинхронный запрос на сервер, и ответ сервера помещает в эту информационную корзину.
А ее действительно нужно делать на обычных элементах - div, table... Это будет намного целесообразнее, практичнее, эстетичнее, удобное для пользователя.
Window.open, iframe совсем лишнее, тем более в таком ключе как это делаете вы. | |
|
|
|
|
|
|
|
для: confirm
(16.11.2012 в 19:21)
| | в плане див место open() я могу согласиться, мороки будет меньше чем с open().
Я понимаю что в идеале нужно отправлять запрос на сервер на какой нибудь страничку типо add.php которая будет добавлять товар место айфрейма, но айфрейм именно подгружает страничку http://zakaz-viagra.ru/ru/add_to_cart/1 (место 1 id товара) но в силу того что движок очень кривой, не получается этого сделать и приходиться подгружать фреймом http://zakaz-viagra.ru/ru/add_to_cart/N, попробую решить этот вопрос.
В общем тему тогда можно закрыть, спасибо confirm. | |
|
|
|
|
|
|
|
для: ntro123
(16.11.2012 в 19:35)
| | Не надо никаких страничек подгружать ни в какие фреймы.
Вы уже подгружаете несколько десятков КБ jQuery, библиотеки довольно таки с приличным функционалом, и это ради этого:
$(win.document.getElementById('faq'))...?
Вы либо котлеты выбирайте, либо мух, не скрещивайте таким образом слона и ежика. | |
|
|
|