检查 iFrame 内容是否存在
Checking if iFrame content exists
我在 jQuery 中使用两个 if 语句,每个语句在元素主体内查找 iFrame 并相应地设置高度(如果它为空或有内容)。我正在使用它来检查 DFP 是否提供了广告或者它是否提供了空白。
我有以下内容:
$('.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 语句,它会正确调整高度,但会针对循环中运行的每个广告这样做,而不仅仅是它为其找到内容的广告。
您应该使用 .contents()
显示 iframe 文档。
$("#iframe_container").find("iframe").contents().find("body")
你的情况:
$("#" + feedData).find("iframe").contents().find("body").contents().length > 0
因为空 iframe 确实 有正文
我在 jQuery 中使用两个 if 语句,每个语句在元素主体内查找 iFrame 并相应地设置高度(如果它为空或有内容)。我正在使用它来检查 DFP 是否提供了广告或者它是否提供了空白。
我有以下内容:
$('.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 语句,它会正确调整高度,但会针对循环中运行的每个广告这样做,而不仅仅是它为其找到内容的广告。
您应该使用 .contents()
显示 iframe 文档。
$("#iframe_container").find("iframe").contents().find("body")
你的情况:
$("#" + feedData).find("iframe").contents().find("body").contents().length > 0
因为空 iframe 确实 有正文