我有一个 wordpress 网站宽度的侧边栏,客户想要一遍又一遍地重复一组广告以填充空白。
所以我有第一组广告硬编码,然后有一个函数来获取#content DIV 的高度并循环遍历广告数组并根据需要将它们附加到侧边栏。
它在网站的大多数页面上都可以正常工作,例如此处(链接)。
但是由于某种原因,基于一个模板的页面没有报告正确的高度(我在页面上放了一个跟踪语句,它报告了 ~2500 而不是 ~6000)。你可以在这样的页面上看到(链接)。
为了使它更难调试,它会间歇性地在这些页面上工作。但通常重新加载然后它再次失败。循环工作,只是没有足够的时间,因为高度被错误地报告给脚本。我不明白。
脚本在这里:
<script type="text/javascript">
$(function() {
var contentHeight = $('#content').height();
var adList = [
'<a href="http://www.toveromarks.com"><img class="ad" src="http://happeninginthehills.com/wp-content/uploads/ads/ToveroHappeningHills.jpg" /></a>',
'<img class="ad" src="http://happeninginthehills.com/wp-content/uploads/2012/12/vi-owens-ad.png" />',
'<a href="http://www.hadunne.com"><img class="ad" src="http://happeninginthehills.com/wp-content/uploads/2012/12/susie-ad1.png" /></a>',
'<a href="http://www.deborahchabrian.com"><img class="ad" src="http://happeninginthehills.com/wp-content/uploads/ads/chabrian-ad.jpg" /></a>',
'<a href="http://www.tclaw.biz"><img class="ad" src="http://happeninginthehills.com/wp-content/uploads/2012/12/jeffs-ad.png" /></a>',
'<a href="http://www.edmartinezart.com"><img class="ad" src="http://happeninginthehills.com/wp-content/uploads/ads/martinez-ad.jpg" /></a>',
'<img class="ad" src="http://happeninginthehills.com/wp-content/uploads/2012/12/scott-phillips-ad.jpg" />'
];
var adHeight = 285;
var numRequiredAds = adList.length;
var heightDiff = contentHeight - (numRequiredAds * adHeight);
var numAds = Math.floor(heightDiff/adHeight);
if (heightDiff > adHeight){
for (var i = 0; i < numAds ; i++) {
$('#primary').append(adList[i % adList.length]);
//$('#primary').append('<p>ad num '+i+'</p>');
};
//$('#primary').append('<p>height is'+contentHeight+'</p>');
}
});
</script>