Перейти к содержанию
skyzy

Ошибка Cannot read property 'open' of undefined в goole Chrome

Рекомендуемые сообщения

Приветствую знатоков!

Решил слегка доработать функцию add в файле common.js (отвечает за добавление товара вкорзину).

Хотелось, чтобы выскакивало модальное окно с тем же текстом, что и в стандартном сообщении. 

Проблема в следующем. 

В хроме появляется ошибка: Cannot read property 'open' of undefined

При этом в яндекс браузере всё работает на ура.

Вот код функции:

...'add': function(product_id,buttonId, quantity) {
		$.ajax({
			url: 'index.php?route=checkout/cart/add',
			type: 'post',
			data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
			dataType: 'json',
			beforeSend: function() {
				$('#cart > button').button('loading');
			},
			complete: function() {
				$('#cart > button').button('reset');
			},
			success: function(json) {
				$('.alert, .text-danger').remove();

				if (json['redirect']) {
					location = json['redirect'];
				}

				if (json['success']) {
					$('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>');

					// Need to set timeout otherwise it wont update the total
					setTimeout(function () {
						$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
					}, 100);
                    
                    document.getElementById('cartCount').innerHTML = json['total'];
                    
                     //Меняем класс блока с корзиной
                    var articleCart = document.getElementById(buttonId);
                    articleCart.className = "";
                    articleCart.className = "activeCart";
                    

                    $('html, body').animate({ scrollTop: 0 }, 'slow');
                    
                    $('#cart > ul').load('index.php?route=common/cart/info ul li');
                    
                    //Открываем модальное окно.
================>>> $.magnificPopup.open <<<========================== Здесь выскакивает ошибка
                    ({
                    items: {
                            src: '<div class="cartAddPopup">'+json['success']+'</div>',
                            type: 'inline'
                            }
                        });

	
				}
			},
	        error: function(xhr, ajaxOptions, thrownError) {
	            alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
	        }
		});
	}...

Сайт: joy-joy.ru прямо на главной странице можно посмотреть

ocStore 2.1

Надеюсь на помощь знатоков.

Изменено пользователем skyzy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

jquery на поменьше версия сменить пробуйте

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, theRGD сказал:

jquery на поменьше версия сменить пробуйте

Пробовал. Отваливаются несколько других функций. И результата не даёт.

Изменено пользователем skyzy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, skyzy сказал:

Пробовал. Отваливаются несколько других функций.

с 2.1.1 тоже не работает? без migrate?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, theRGD сказал:

с 2.1.1 тоже не работает? без migrate?

Тоже. Я попробовал первым делом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, skyzy сказал:

Тоже. Я попробовал первым делом.

:| тогда не знаю, сборку делал когда, переписал все JS избавляясь от ошибок

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

может что поменяли в процессе тестирования, но при загрузке сразу вижу такое

 

QjYmHdhxRryupVx2ck0FGA.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 минут назад, AlexDW сказал:

может что поменяли в процессе тестирования, но при загрузке сразу вижу такое

 

QjYmHdhxRryupVx2ck0FGA.png

Это файл отвечающий за поиск. С ним ещё не ковырялся... Знаю об этой ошибке. К сожалению, они не связаны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, skyzy сказал:

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

 

первый раз про такое слышу :?

можно подробней? желательно с примером..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, AlexDW сказал:

 

первый раз про такое слышу :?

можно подробней? желательно с примером..

Возможна такая ситуация, что скрипт не загружен, а инициализация уже идет..

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
51 минуту назад, AlexDW сказал:

первый раз про такое слышу :?

можно подробней? желательно с примером..

Бог  его знает. Нет у меня примера. По факту:

1. в яндекс браузере всё работает

2. в хроме не работает.

3. при явном указании скрипта в head работает и там и там

Вывод: в хроме скрипт не подгружается или подгружается не полностью. В яндексе подгружается. Как-то так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
52 минуты назад, chukcha сказал:

Возможна такая ситуация, что скрипт не загружен, а инициализация уже идет..

так вроде тогда бы нигде не работало..

почему и спросил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, skyzy сказал:

при явном указании скрипта в head работает и там и там

т.е. при подключении скрипта через контроллер такая проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
23 минуты назад, AlexDW сказал:

так вроде тогда бы нигде не работало..

в то-то и дело, что раз на раз не приходится..

В одном браузере может работать, а в другом -нет

 

Вы никогда не замечали сколько запросов делает FF при наличии тега rel=next ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 08.11.2017 в 15:35, AlexDW сказал:

т.е. при подключении скрипта через контроллер такая проблема?

Имел ввиду, что если воткнуть его в шаблон header.tpl

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Exzik
      Добрый день , форумчане 
      Появилась проблема, которую я не могу решить сам 
      На страницу категорий добавил скрипт прокрутки, работает как часы  и грузит все отлично.
      Проблема в том, что из-за этого скрипта перестали работать кнопки (Добавить в корзину и т.д )
      Не могли бы подсказать в чем именно проблема ? 
      Ссылка на сайт  тут
       
       
      Скрипт 
      $(function() { function scrollLoader() { console.log('---', 123) if ($(window).scrollTop() == $(document).height() - $(window).height()) { console.log('---', 'ok') setTimeout(function() { $('#endless').trigger('click') }, autoscroller.delay) } } var autoscroller = [] //setting autoscroller.hidePagination = 1 autoscroller.autoScroll = 0 autoscroller.catcher = '#endless' autoscroller.delay = 1000 autoscroller.loading = 0 $(window).scroll(function() { scrollLoader() if (inWindow(autoscroller.catcher) && !autoscroller.loading && autoscroller.autoScroll) { autoscroller.loading = true $('#endless .fa-refresh').addClass('btn-load-new') } }) if ($('.category-catalog').length) { if ($('.pagination').length && !$('.pagination > li:last-child').hasClass('active')) { $('#content col-12 col-md-9 order-2').hide() $('.pagination') .parent() .before( '<div class="col-xs-12 text-center"><button class="btn btn-success btn-lg" id="endless" style="margin: 15px auto; padding: 10px 120px;" ><span class="btn-load-new">Еще товары</span></i></button></div>') $('#endless').on('click', function(e) { var lastProduct = $('.pagination') .closest('.category-catalog') .find('.front-top-products li:last-child') var nextPage = $('ul.pagination li.active').next().find('a:first-child') var nextPageHref = nextPage.attr('href').substring(7) // console.log('---',nextPageHref); // console.log('---', nextPage.attr('href')); $.ajax({ url: 'https://' + nextPageHref, beforeSend: function() { $('#endless .fa-refresh').addClass('btn-load-new') }, success: function(data) { var products = $(data).find('.category-catalog .front-top-products') lastProduct.after(products) $('.pagination').html($(data).find('.pagination > *')) nextPage = $('ul.pagination li.active').next().find('a:first-child') if (nextPage.length == 0) { $('#endless').remove() } else { $('#endless .fa-refresh').removeClass('btn-load-new') } autoscroller.loading = 1 }, }) return false }) } } function inWindow(el) { if ($(el).length) { var scrollTop = $(window).scrollTop() var windowHeight = $(window).height() var offset = $(el).offset() if (scrollTop <= offset.top && ($(el).height() + offset.top) < (scrollTop + windowHeight)) { return true } } return false } })  
    • От deadlylimonad
      Появилась ошибка в JS при переезде на https, перестали подгружаться товары в категориях (бесконечная прокрутка).
      Вот что в консоли:
      Mixed Content: The page at 'https://abt-professional.com/magazin/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://abt-professional.com/magazin/?page=2'. This request has been blocked; the content must be served over HTTPS. send @ jquery-2.1.1.min.js?j2v=2.8.5:4 ajax @ jquery-2.1.1.min.js?j2v=2.8.5:4 n.(anonymous function) @ jquery-2.1.1.min.js?j2v=2.8.5:4 load @ jquery-ias.min.js?j2v=2.8.5:13 (anonymous) @ jquery-ias.min.js?j2v=2.8.5:13 j @ jquery-2.1.1.min.js?j2v=2.8.5:2 add @ jquery-2.1.1.min.js?j2v=2.8.5:2 c.next @ jquery-ias.min.js?j2v=2.8.5:13 scrollHandler @ jquery-ias.min.js?j2v=2.8.5:13 a @ jquery-ias.min.js?j2v=2.8.5:13 setTimeout (async) d @ jquery-ias.min.js?j2v=2.8.5:13 f @ jquery-2.1.1.min.js?j2v=2.8.5:2 dispatch @ jquery-2.1.1.min.js?j2v=2.8.5:3 r.handle @ jquery-2.1.1.min.js?j2v=2.8.5:3  
    • От deadlylimonad
      Привет. Проблема в том, что все выпадающие меню (главное вверху и несколько в футере) в мобильной версии сайта начинают работать т.е. выпадать только после прокрутки страницы на тлф. туда-сюда, или если в браузере (при эмуляции тлф.) то после некоторого перетаскивания границ экрана эмулируемого устройства (320-760px). Думаю, что-то с подгрузкой скриптов. Куда копать?
      Версия ocStore 2.3.0.2.2, JOURNALv.2.8.5
      https://abt-professional.com/
    • От Techno1og
      ocStore 1.5. Нужно внести правки в css и javascript  на основании отчета W3C validator,
      Сократить объем кода, переместить скрипты в подвал сайта, объединить стили и т.д...сохранив логику. 
       
    • От Yarilo
      Добрый день! Заметил ошибки в карточке товара, что это может быть?
       
      Как можно это исправить? Подскажите пожалуйста!
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.