Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Скрипт работает только в Хроме (https://javascript.ru/forum/jquery/57786-skript-rabotaet-tolko-v-khrome.html)

gorilas 19.08.2015 17:47

Скрипт работает только в Хроме
 
Добрый день , замучился разбираться, может кто что подскажет.
После нажатия кнопки купить, скрипт запускает модальное окно корзины.
В хроме всё работает, в других браузерах нет.
Не силён в Js, подскажите где копать.
http://energoclub.com.ua/product/izo...inyaya-0074838

gorilas 19.08.2015 17:48

Может кто за вознаграждение поможет.

рони 19.08.2015 18:31

gorilas,
$('#cabinet-new .overview').height(windowHeight()-125+'px');
если это функция то где она?
чем заменить на js смотрите ниже https://learn.javascript.ru/metrics-window

или так попробуйте
$('#cabinet-new .overview').height($(window).height()-125+'px');

gorilas 19.08.2015 22:45

Так пока не совсем понял.
$('#cabinet-new .overview').height(windowHeight()-125+'px');
.
Здесь как я понял проблема такая, при нажатии на кнопку "купить" class=buy
запускается функция в ajax.js
/////Add to shop cart
$('.buy').live('click', function(){
    var id = $(this).attr('name');
    var amount = $('#cnt_'+id).val();
    var color = $('.color_select.selected').attr('id');

	if($(this).hasClass('buy_q'))
	{
		var sizes = $('#size'+id).val();
	}
	else{
		var sizes = $('.size_select.selected').attr('id');
	}

	if($('.color_select').length>0&&color==undefined)
	{
		$.stickr({note: 'Выберите цвет!', className: 'prev', 
position: {right:'42%',bottom:'60%'}, time: 1000, speed: 300});
	}
	else if($('.size_select').length>0&&sizes==undefined)
	{
		$.stickr({note: 'Выберите размер!', className: 'prev', 
position: {right:'42%',bottom:'60%'}, time: 1000, speed: 300});
	}
	else
	{
		var photo = $('#photo_basket').val();
        var dataString = 'id=' + id + '&amount=' + amount + '&color=' + color + '&size=' + sizes + '&photo=' + photo;
        $.ajax({type: "POST", url: "/ajax/orders/incart", data: dataString, dataType:"json", cache: false, success:
		function (data)
		{
			bascket();
			$('#count_bascket').html(data.count);
			$('#sum_bascket').html(data.total);
            $.stickr({note: 'Товар добавлен!', className: 'next', position: {right:'42%',bottom:'60%'}, time: 1000, speed: 300});
			$('#cart_content').html(data.content);
			$('#cart_popup').modal();
        }});
    }
});

Она добавляет товар в корзину, и выводит модальное окно корзины.
Код ответа сервера в Хроме
{"count":49,"total":"<span>1 024,21 <\/span> <font>\u0433\u0440\u043d.<\/font>","product":
[{"amount":"29","cart_id":"195","id":"4291","code":"\u041e\u0417\u041e\u041c","code1":"04-05-02-02",
[B]ОБРЕЗАНО[/B]


Ответ сервера в Мазила
<style>
	.debug_message{
		border:solid 1px #DEDEDE; 
		background:#EFEFEF;
		color:#222222;
		padding:4px;
	}
</style>
Mysql Error!{"count":0,"total":"<span>0,00 <\/span> <font>\u0433\u0440\u043d.<\/font>","product":[],"translate"
:{"sk
[B]ОБРЕЗАНО[/B]

В мазиле модальное окно не (появляется), и товар в корзину не добавляется.
Щас попробую найти строчку указанную вами, и исправлю на ваш код.
Спасибо за желание помочь :thanks: !

рони 19.08.2015 23:05

gorilas,
http://energoclub.com.ua/js/cabinet.js
6 строка

gorilas 20.08.2015 11:55

Спасибо по пробывал , не помогло.
Вообще всё удалил в http://energoclub.com.ua/js/cabinet.js, проверил в хед , документ пуст, а корзина в Хроме работает ).
Я так понимаю cabinet.js к корзине не имеет никакого отношения.
Буду копатся дальше, спасибо за помощь.

Почистил куки в Хром, и корзина перестала работать в Хроме ))

рони 20.08.2015 12:36

gorilas, строка 5 нарушает синтаксис и убивает http://energoclub.com.ua/js/ajax.js
function bascket1()
{
    $.ajax
    ({
	alert ("Фукциякорзина");
        type: "POST",
        url: "/ajax/orders/bascket",
        cache: false,
        success: function (html) {
            $("#basket_block").html(html);
        }
    });
}

gorilas 20.08.2015 15:12

alert ("ххххххх");

Это я уже вставляю вывод, смотрю стадии работы скрипта, ну как умею )))
На ноутбуке куки не чистил после смены сервера, там корзина работает, пытаюсь вьехать.
Если есть кто возьмётся за вознаграждения (разумное) помочь, буду рад.

рони 20.08.2015 15:51

gorilas,
вы бы вернули всё как было первоначально и исправили только windowHeight() - потом триста раз почистили куки, глядишь бы оно и заработало.

gorilas 20.08.2015 16:16

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

рони 20.08.2015 16:26

gorilas,
всё что мог написал выше

gorilas 21.08.2015 21:14

Цитата:

Сообщение от рони
всё что мог написал выше

Спасибо за помощь, методом тыка разобрался, в куки не передовалась session_id, поэтому при нажатии на "купит" сервер не знал новый покупатель или страый.
Закоментировал три строчки в файле, и в масиве появился session_id.
Осталось разобратся зачем и что это за код.
////Auth form
			if(!isset($_SESSION['user_id']))$data['sign_in'] = $this->view->Render('sign_in.phtml', array('translate'=>$data['translate']));
			$data['feedback'] = $this->view->Render('feedback_modal.phtml', array('translate'=>$data['translate']));
			
			$where="";
			if(isset($_SESSION['user_id']))$where=", user_id='{$_SESSION['user_id']}'";
			
			//$data['cnt_compare'] = $this->db->row("SELECT COUNT(*) AS cnt FROM compare WHERE session_id='{$_COOKIE['session_id']}'");
			//$data['cnt_view'] = $this->db->row("SELECT COUNT(*) AS cnt FROM favorites WHERE type='1' AND session_id='{$_COOKIE['session_id']}' ".str_replace(', ',' OR ',$where)."");
			//$data['cnt_fav'] = $this->db->row("SELECT COUNT(*) AS cnt FROM favorites WHERE type='0' AND session_id='{$_COOKIE['session_id']}' ".str_replace(', ',' OR ',$where)."");

Но вроде всё работает.
Ещё раз спасибо за помощь :thanks: .

laimas 23.08.2015 05:40

Цитата:

Сообщение от gorilas
Осталось разобратся зачем и что это за код.

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

gorilas 24.08.2015 20:53

Да типо того, уже разобрался, выше нашол кусок закометированый, на передачу ID в куки, снял всё заработало, вот зачем тут так намутили )

gorilas 06.09.2015 21:47

Друзья а подскажите по синтаксису, бьюс, а оно всё ошибка.
<script type="text/javascript">
      $(document).ready(function() {
         $("#my-menu").mmenu({
            currentItem: {
               // current item options
            }
         });
      });
   </script>

Надо запомнить активное меню.
Предлагуют туда вставить
True false

Вот что туда предлогают вставить

меня сбивают с толку двоеточеик в коде после currentItem:

gorilas 06.09.2015 21:48

Администратор удалите пожлуста.

gorilas 08.09.2015 17:44

Всё, спасибо разобрался )


Часовой пояс GMT +3, время: 01:41.