Uncaught ReferenceError: miniShop2 is not defined
Подключаю на кристально чистом сайте
Ссылка s6636.h5.modhost.pro/manager/
Логин s6636
Пароль f7KOYX8fsUzN
s6636.h5.modhost.pro/manager/index.php?a=resource/update&id=7
<div id="content" class="product">
[[$msProduct.content]]
</div>
<script>
miniShop2.Callbacks.add('Cart.add.ajax.always', 'ajax_log', function(xhr) {
console.log(xhr);
});
</script>
В консоли выходит ошибка — Uncaught ReferenceError: miniShop2 is not definedСсылка s6636.h5.modhost.pro/manager/
Логин s6636
Пароль f7KOYX8fsUzN
s6636.h5.modhost.pro/manager/index.php?a=resource/update&id=7
Комментарии: 10
Всем огромное спасибо за помощь.
Вы, конечно, можете обижаться, но ждать, что все бросят все свои заботы и побегут вам помогать в выходной день, как то наивно, мне кажется.
Да и описали бы что хотели сделать (задачу), а то ошибка и все. Я тоже какой-то код могу вставить и говорить, у меня ничего не работает, помогите.
Мои предположения, что код minishop подключается ниже, чем ваш вызываемый код. Плагины подключают скрипты в конце страницы, а в вашем случае ваш вызов скорее всего в начале, следовательно на момент загрузки вашего скрипта на странице еще нет объекта minishop2, потому и ошибка.
Да и описали бы что хотели сделать (задачу), а то ошибка и все. Я тоже какой-то код могу вставить и говорить, у меня ничего не работает, помогите.
Мои предположения, что код minishop подключается ниже, чем ваш вызываемый код. Плагины подключают скрипты в конце страницы, а в вашем случае ваш вызов скорее всего в начале, следовательно на момент загрузки вашего скрипта на странице еще нет объекта minishop2, потому и ошибка.
Спасибо за попытку помочь.
Этот скрипт я подключал даже непосредственно перед закрывающим /body
Та же самая ошибка.
При этом minishop работает, товары добавляются.
Я его правильно понимаю? Его нужно писать просто в таком виде?
Этот скрипт я подключал даже непосредственно перед закрывающим /body
Та же самая ошибка.
При этом minishop работает, товары добавляются.
Я его правильно понимаю? Его нужно писать просто в таком виде?
Так опишите задачу, что сделать хотите то? Может это совсем по другому сделать можно.
Задача была, но забыл уже.
Сейчас просто колбэк хочу запустить, посмотреть как работает.
Как можно подключить ниже чем минишоповский скрипт? Если он в самом низу подключается?
Вот здесь, например, msearch2 колбэк запускается, хотя и выше основного скрипта.
Сейчас просто колбэк хочу запустить, посмотреть как работает.
Как можно подключить ниже чем минишоповский скрипт? Если он в самом низу подключается?
Вот здесь, например, msearch2 колбэк запускается, хотя и выше основного скрипта.
$(document).on('mse2_load', function(e, response) {
var page = mse2Config.page;
var limit = Number(mse2Config.limit || mse2Config.start_limit);
var pages = Math.ceil(Number(response.data['total']) / limit);
console.log(page, pages, limit);
});
</script>
<script type="text/javascript" src="/assets/components/minishop2/js/web/default.js?v=96cf372a34"></script>
<script type="text/javascript" src="/assets/components/msearch2/js/web/default.js"></script>
<script type="text/javascript">
if ($("#mse2_mfilter").length) {
if (window.location.hash != "" && mSearch2.Hash.oldbrowser()) {
var uri = window.location.hash.replace("#", "?");
window.location.href = document.location.pathname + uri;
}
else {
mSearch2.initialize("body");
}
}
</script>
</body>
</html>
В случае с msearch все логично, потому что jquery навешивает обработчик на событие, а когда msearch это событие тригерит, запускается обработчик. А в случае с явным вызовом minishop объекта такое уже не получится. Стоит скорее всего последний minishop версии 2.4, почитал документацию, но видимо что-то там не дописано. Буду на неделе разбираться, найду ответ — напишу.
Заранее благодарю.
Всё как говорит Иван. Объект минишопа в вашем случае недоступен потому, что скрипт минишопа подставляется перед закрытием боди перед тем, как передать шаблон на сторону клиента. Поэтому есть 2 варианта:
1. Поставить ваш скрипт после закрытия боди и перед закрытием хтмл.
2. Подключать скрипт минишопа вручную перед вашим скриптом. Только тут нужно будет убрать его путь в настройках симтемы.
1. Поставить ваш скрипт после закрытия боди и перед закрытием хтмл.
2. Подключать скрипт минишопа вручную перед вашим скриптом. Только тут нужно будет убрать его путь в настройках симтемы.
Отбой. Второй вариант не прокатит. Только что проверил.
Как в первый раз, серьёзно
Или даже
$(document).ready(function() {
console.log(miniShop2);
});
Или даже
[[*id:input=`<script>console.log(miniShop2);</script>`:jsToBottom]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.