使用jQuery,如何根据页面高度限制我的广告单元数?

时间:2012-01-02 22:27:27

标签: javascript jquery

我的应用程序采用2列设计构建,右侧300像素列用于显示一个 Adsense广告单元。

由于某些页面较高,我想知道是否有办法让jQuery确定#main_wrapper的高度,如果超出特定大小,则显示额外的广告单元 。有点像这样:

    // ad unit #1 shown here by default in all pages

<script>

$(document).ready(function(){

            if ($('#main_wrapper').height() > 660) {

            //show add unit #2
        }

});

</script>

我的问题是如何处理使用上面的jQuery / JS条件包装广告单元代码。典型的广告单元是:

<script type="text/javascript"><!--
google_ad_client = "ca-pub-123123123123";
/* Sidebar 300 Middle */
google_ad_slot = "123123123";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

我如何在上面的jQuery中插入它?

2 个答案:

答案 0 :(得分:0)

也许你应该在所需的块中包含这些字符串?

 if ($('#main_wrapper').height() > 660)
 {
  google_ad_client = "ca-pub-123123123123";
  google_ad_slot = "123123123";
  google_ad_width = 300;
  google_ad_height = 250;
 }

答案 1 :(得分:0)

类似的东西:

修改:代码更改为上一次导致错误解析</script>

编辑:阅读this后,用pojs替换jquery的.append(),并将DOM元素添加到DOM树

$(document).ready(function(){

    function adUnit(client, slot, width, height) {
        var unit = '<!--\n';
            unit += 'google_ad_client = ' + client + ';\n';
            unit += 'google_ad_slot = ' + slot + ';\n';
            unit += 'google_ad_width = ' + width + ';\n';
            unit += 'google_ad_height = ' + height + ';\n';
            unit += '//-->';

        var script = document.createElement('script');
            script.type = 'text/javascript';
            script.text =  unit;

        document.head.appendChild(script);
        console.log('adUnit executed');
    }
    adUnit(1, 2, 3, 4);

});