Мне нужно отследить изменение содержимого фрейма, но через .contents().find('body') не получается, возвращает нулевой объект. Я так понимаю, потому что адрес прописан поддомена elon.site.
Надим Закиров, извиняюсь, может сталкивались с таким что на iphone не срабатывается ссылка?
Это касаемо вчерашнего вопроса. Есть кнопка во фрейме, со ссылкой
Причем очень странно, если перейти на сайт по http, то похоже скрипт не срабатывает, видимо сам айфон не даёт по этому протоколу, но ссылка срабатывает по клику.
А если перейти по https , то скрипт работает (меняет высоту блока в зависимости от содержимого фрейма) , но ссылка при клике уже не работает. Может у меня в скрипте что-то блочит?
Я только изучаю JS, не всё понимаю пока.
Вот сам скрипт:
$(function() {
document.domain = 'paintstore.io';
$('.frame').on('load', function(){
var target = this;
var content = $(target).contents().find('body');
$(target).height($(content).outerHeight(true));
$(content).on("DOMSubtreeModified click", function (event){
setTimeout(function(){
$(target).stop().animate({height: $(content).outerHeight(true)}, 200);
}, 400);
});
});
});
Senseich, это, свойство DOMSubtreeModified устаревшее и давно уже не поддерживается. Нужно использовать MutationObserver, если хотите отслеживать изменения на странице в режиме реального времени.
Надим Закиров, Я тоже подозреваю, что в нём может быть дело. Нашел хорошее решение, есть интересный плагин iFrame Resizer , и там как раз используется MutationObserver.
Работает кросплатформенно, проверил. И можно сообщаться между фреймом и страничкой с помощью postMessage даже если на поддомене , т.е. не надо прописывать document.domain