@MaksimLav

Как в fancybox 3 загрузить через ajax только часть html?

Есть html файл в котором находятся блоки с картинками:
<html>
<head></head>
    <body>
    <img src="img/alie-parusa-bg-1.jpg" alt="" id="one">
    <img src="img/construction-phase-bg-1.png" alt="" id="two">
    <img src="img/img-for-slider-1.jpg" alt="" id="three">
    </body>
</html>

Есть кнопка с указанием загрузки части этого html (#one).
<a" data-type="ajax" data-src="plan-floor-pop-up.html #one" data-filter="#one" data-fancybox href="javascript:;" class="fancybox.ajax select-apartment-table-section__floor-block">

fancybox 3 поддерживает ajax загрузку документа, но он загружает весь документ ( пример разработчика https://codepen.io/fancyapps/pen/jvgRRe?editors=1100 ), а не его часть через id. Подскажите, есть ли возможность загружать именно указанный кусок?
Потому что, даже асинхронно но он загружает все картинки
5bea8e67df901377403344.png5bea8e80cd3b1011409002.png
  • Вопрос задан
  • 1200 просмотров
Решения вопроса 2
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Через AJAX загружается только весь документ от и до. Это технически невозможно. Будь то html, text, xml или json.
Обычно используют, например, get или post запросы, чтобы получить только определённые данные, а не все сразу. Можете попробовать измазаться в бекенде и поставить свой мост, который будет брать данные с конечного сайта, фильтровать их и отдавать вашему скрипту только то, что нужно.
Ответ написан
Комментировать
BRAGA96
@BRAGA96
Разве что самим сделать запрос, получить html, взять нужный селектор и вставить в окно fancybox
getFile('plan-floor-pop-up.html', function ($html) {
    return $('#one', $html);
}).done(function ($html) {
    //> Нужный jQuery Selector для вставки в DOM
});

function getFile(link, filter) {
    return $.ajax($.extend(true, {}, {
        method: 'GET',
        dataType: 'text',
        dataFilter: function (response) {
            var $html = $(response);
            if (filter) filter($html);
            return $html;
        }
    }, {
        url: link
    }));
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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