Я работаю с двумя операциями if в jQuery каждый оператор, который ищет iFrame внутри тела элемента и соответственно устанавливает высоту, если он пуст или имеет контент. Я использую это, чтобы проверить, подал ли DFP объявление или если он подал пустой пробел.Проверка наличия содержимого iFrame
Что у меня есть следующие:
$('.element-paragraph').each(function(index) {
var characterCount = $(this).text().length
totalCount = totalCount + characterCount
if (totalCount > 1200) {
totalCount = 0;
var feedData = "pos" + adUnit.toString();
var advertInsert = '<div id=' + feedData + ' class="inline-ad big-box-300x250 border-bottom-" data-mobile-display="" data-desktop-display="" data-ad-type="' + feedData + '" style=""></div>'
var ad_script = '<script type="text/javascript">googletag.cmd.push(function() { googletag.display("' + feedData + '"); });</script>';
$(this).append(advertInsert)
$(this).append(ad_script);
adUnit++;
if ($("#" + feedData).contents().find("iframe").find("body").length > 0) {
console.log("Advert found for unit" + feedData)
$("#" + feedData).css("height","350");
}
else {
console.log("Advert not found for unit" + feedData)
$("#" + feedData).css("height","0");
}
}
});
Содержание вложен так: #id
>iFrame
>div
>div
>#document
>html
>body
Это, кажется, не быть должным проверяя длину тела внутри iFrame. Если я удалю инструкцию else, она правильно регулирует высоту, но делает это для каждого объявления, которое проходит через цикл, а не только для тех, для которых он находит контент.
P.S. Основная ошибка: '.contents(). Find (" iframe ")' вместо '.find (" iframe "). Contents()' – Dimava
Спасибо, с новым годом! –