Palych_tw
@Palych_tw
Типа веб-разработчик

Почему Mutation Observer срабатывает не всегда?

На сайте есть комментарии disqus, они подгружаются скриптом в iframe через 3-4 секунды после загрузки страницы. Мне нужно было отследить момент когда они полностью загрузятся .load и .ready не помогали. Наткнулся на MutationObserver.
Есть вот такой код
function mobileComments() {
            if ($(window).width()<= 991 ) {
                var disqusHeight = $('#disqus_thread').height();
                $('.blog-index-sidebar').css("padding-bottom",disqusHeight);
                console.log(disqusHeight);
            }
            sidebarHeight();
        }

        jQuery(document).ready(function(){
            var target = $('#disqus_thread')[0];
            var observer = new MutationObserver(function(mutations) {
                mutations.forEach(function(mutation) {
                    mobileComments();
                });
            });
            var config = { attributes: true, childList: true, characterData: true };
            observer.observe(target,  config);


        });
        $( window ).resize(function() {
            mobileComments();
        });

Задача : на мобилках и планшетах, когда все складывается в одну линию, сайдбар всунуть между статьей и комментами. Код работает через раз, я там законсолил высоту блока с комментами, иногда он её подхватывает при изменениях содержимого
9000332bc7784805a5460d8f410115dc.png
А иногда - нет
cff86382895f4faea21c5f95e85e3d7d.png
И все ломается
  • Вопрос задан
  • 521 просмотр
Решения вопроса 1
mlnkv
@mlnkv
JavaScript Developer
как-бы, для этого есть официальная документация и гугл

https://help.disqus.com/customer/portal/articles/4...
https://gist.github.com/opi/2234861
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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