Задать вопрос
@olyabolya

Почему не работает виджет?

Добрый день.
Устанавливаю на сайт (самописный) виджет от Boxberry и возникла такая проблема:
Код они предлагают такой:
function callback_function(result){ 
document.getElementById('city').innerHTML = result.name;
document.getElementById('js-pricedelivery').innerHTML = result.price;
document.getElementById('code_pvz').innerHTML = result.id;

result.name = encodeURIComponent(result.name) // Что бы избежать проблемы с кириллическими символами, на страницах отличными от UTF8, вы можете использовать функцию encodeURIComponent() 

document.getElementById('name').innerHTML =	result.name;
document.getElementById('address').innerHTML =	result.address;
document.getElementById('workschedule').innerHTML = result.workschedule;
document.getElementById('phone').innerHTML = result.phone;
document.getElementById('period').innerHTML = result.period;
if (result.prepaid=='1') { 
alert('Отделение работает только по предоплате!'); 
} 
}

но если на карте выбрать пункт выдачи и при нажатии на кнопку "Выбрать отделение", в консоли вылезает ошибка:
Uncaught TypeError: Cannot set property 'innerHTML' of null
    at callback_function (boxberry.js:3)
    at Object.callCallbackSelfFunction (boxberry.js:251)
    at Object.<anonymous> (boxberry.js:77)

Уже пробовала и window.onload вставлять, и $(document).ready(function() { но по итогу всё валятся какие-то ошибки. Если вставлять эти 2 строчки, то тогда карта вообще не открывается, выдается ошибка
Uncaught ReferenceError: callback_function is not defined
    at HTMLAnchorElement.onclick

Подскажите, как уже сделать этот виджет? Заранее спасибо за помощь!
  • Вопрос задан
  • 773 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
@olyabolya Автор вопроса
Проблема решена, не было выведено поле для вывода данных выбранного пункта выдачи.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
rockfeeler
@rockfeeler
Фронтендер, дизайнер, верстальщик-перфекционист
Думаю, что нужно внимательней читать документацию. Предполагаю, что проблема кроется где-то здесь.


2. Затем в нужном месте на сайте магазина Вам необходимо поставить ссылку: Выбрать ПВЗ, по событию «onclick» которой должна вызываться функция «boxberry.open» из подключенного ранее файла. В эту функцию обязательно должен передаться параметр «callback_function», который и будет принимать массив с выбранным ПВЗ.
3. «callback_function» - это название javascript – функции, которая должна быть прописана на странице оформления заказа. Её имя может быть любым, главное, чтобы она была передана в качестве параметра в «boxberry.open».
4. При нажатии на кнопку "Выбрать отделение" на сайте вызывается функция
«callback_function», куда в качестве параметра передается объект с ключами,
описанными в таблице 2. Формат данных в возвращенном объекте — строки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы