如果广告使用document.write,如何在页面上最后加载广告代码或异步加载广告代码?

时间:2010-12-13 22:01:48

标签: javascript jquery ads document.write

我正在帮助建立一个网站,我们遇到了网页加载时间问题,因为广告有时需要几秒钟才能加载。由于使用<来调用广告脚本>标记浏览器停止解析页面,直到广告完全加载。我们正在寻找的方法是从客户端加载广告,以便可以完全显示该页面,然后广告将开始加载,从而大大改善用户体验。

我已经尝试了很多工作来实现这一点,但实际上没有解决方案显示广告。您可以在http://magic.tcgplayer.com/看到该网站。页面顶部有一个广告作为横幅,右侧“列”中有另一个广告。两个广告都使用<脚本>标签。我试图使用延迟加载javascripts加载,但他们没有工作。我已经尝试过使用writeCapture.js(顺便说一下这是一个很棒的脚本),但广告没有加载。我查看了bezen.org和labjs.com解决方案,但我不确定如何应用这些资源中的想法。另请注意,广告脚本位于远程服务器上,无法复制到我们的服务器。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

将广告放入iframe中。 iframe应该使用document.write()加载JavaScript。

答案 1 :(得分:2)

我试图找到一些方法来同步加载谷歌广告,我找到它。

一个大型网站douban使用iframe来保存js和异步加载iframe。

这是js代码:

function google_ad() {
    function createIframe() {
        var ad_frame = document.createElement("iframe");
        ad_frame.src = "/js/google_ad.htm";
        ad_frame.id = "google_ad_frame";
        ad_frame.scrolling = "no";
        ad_frame.width = "260px";
        ad_frame.height = "260px";
        document.getElementById("google_ad").appendChild(ad_frame);
    };

    if (window.addEventListener) {
        window.addEventListener("load", createIframe, false);
    } else if (window.attachEvent) {
        window.attachEvent("onload", createIframe);
    } else {
        window.onload = createIframe;
    }
}

这是iframe的代码,来自google adsense:

<script type='text/javascript' src='http://partner.googleadservices.com/gampad/google_service.js'>
</script>
<script type='text/javascript'>
    GS_googleAddAdSenseService("ca-pub-1281485759256908");
    GS_googleEnableAllServices();
</script>
<script type='text/javascript'>
    GA_googleAddSlot("ca-pub-1281485759256908", "ad_right");
</script>
<script type='text/javascript'>
    GA_googleFetchAds();
</script>

<script type="text/javascript">
    GA_googleFillSlot("ad_right");
</script>

所以,我只是用这个:

<div id="google_ad" style="margin-top:20px;text-align:center;border:solid 17px #FFFFFF;">
    <script type="text/javascript">google_ad();</script>
</div>

并加载框架。

答案 2 :(得分:0)

自从事情发展以来,现在可以使用deferasync属性。

我使用async加载脚本,但defer对旧浏览器更安全。

请参阅W3 Schools,其中包含async和defer的详细信息。