Белла Владимировна

Недавно возникла необходимость вместо пустой цены выводить «Цена по

masson09.08.20202min3720

Недавно возникла необходимость вместо пустой цены выводить "Цена по запросу" в каталоге товаров на основе 1С-Битрикс Aspro.Max и сделать это совсем не редактируя шаблон.
Использовал кастомный JavaScript в настройках [ Аспро: Максимум ] в админ панели CMS Битрикс сайта [ Редактирование включаемой области: /bitrix/templates/aspro_max/js/custom.js ].

Повесил наблюдатель за DOM объектами через встроенный javascript объект MutationObserver( https://learn.javascript.ru/mutation-observer ) для товаров которые подгружаются через AJAX по кнопке 'Показать больше товаров' и инициировав проверку на первоночально загруженные товарные позиции при открытии страницы.
Так же это работает и в детальной карточке товара магазина 1C-Bitrix с шаблоном от "Aspro Максимум".

Код:

var targetInit = document.querySelectorAll('.item_info');
for (var i = 0; i < targetInit.length; i++) {
priceM=targetInit[i].getElementsByClassName('cost prices clearfix')[0];
regex = /^\s+$/g;
if((priceM.innerText=='')||(priceM.innerText.match(regex))){
priceM.innerHTML += "Цена по запросу";
}
}

var target = document.querySelectorAll(".inner_wrapper");
for (var i = 0; i < target.length; i++) {

// create an observer instance
var observer = new MutationObserver(function(mutations) {
//console.log("mutation1");
mutations.forEach(function(mutation) {

for(let node of mutation.addedNodes) {

if (!(node instanceof HTMLElement)) continue;
for(let elem of node.querySelectorAll('.item_info')) {
priceM=node.getElementsByClassName('cost prices clearfix')[0];
regex = /^\s+$/g;
if((priceM.innerText=='')||(priceM.innerText.match(regex))){
priceM.innerHTML += "Цена по запросу";
}
}
}

});
});

var config = { childList: true, subtree: true };

observer.observe(target[i], config);
}

if(document.getElementsByClassName('cost prices detail')[0] != undefined){
if(document.getElementsByClassName('cost prices detail')[0].innerText==''){
document.getElementsByClassName('cost prices detail')[0].innerHTML += "Цена по запросу";
}
}

Как вам( от 1 до 5 ) решение Аспро: Maximum в онлайн магазинах от 1С Битрикс?
Практика для Фрилансеров и Бизнесаpublic poll

1⋅⋅⋅000

2⋅⋅⋅000

3⋅⋅⋅000

4⋅⋅⋅000

5⋅⋅⋅000

4 people voted

MutationObserver: наблюдатель за изменениями

learn.javascript.ru

Поделиться записью в соцсети

Оставить ответ

Ваш адрес электронной почты не будет опубликован. необходимые поля отмечены *


О нас

Использование гибких сред для предоставления надежного краткого обзора для бизнес обзоров высокого уровня. Итеративные подходы к корпоративной стратегии стимулируют совместное мышление для продвижения общего ценностного предложения. Органически развивает целостное мировоззрение подрывных инноваций через разнообразие рабочих мест и расширение прав и возможностей.


CONTACT US

CALL US ANYTIME


Поделиться записью в соцсети
Яндекс.Метрика