【问题标题】:Load Advertisement (script) after page using jquery使用 jquery 在页面后加载广告(脚本)
【发布时间】:2011-06-24 12:55:48
【问题描述】:

我正在尝试优化页面渲染和下载,但我陷入了这种情况...... 我想在页面加载结束时加载一个广告,我做了一个简单的测试PAGE

代码:

<!DOCTYPE html>
<html lang="en">
  <head>   
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
          var AdBrite_Title_Color = '443E3E';
          var AdBrite_Text_Color = '443E3E';
          var AdBrite_Background_Color = 'D1CFCF';
          var AdBrite_Border_Color = '443E3E';
          var AdBrite_URL_Color = '443E3E';
          try{var AdBrite_Iframe=window.top!=window.self?2:1;var AdBrite_Referrer=document.referrer==''?document.location:document.referrer;AdBrite_Referrer=encodeURIComponent(AdBrite_Referrer);}catch(e){var AdBrite_Iframe='';var AdBrite_Referrer='';}
          $(document).ready(function(){                    
          });    
    </script>     
  </head>  
  <body style="background: #90EE90;">
  <div id="page" style="">              
      <div id="loginbox" style="position: fixed; top: 150px; left: 250px;">          
          <span style="white-space:nowrap;"> <!-- AD MUST BE HERE-->
          <a target="_top" 
             href="http://www.adbrite.com/mb/commerce/purchase_form.php?opid=1866421&afsid=1">
           <img src="http://files.adbrite.com/mb/images/adbrite-your-ad-here-banner-w.gif" 
              style="background-color:#443E3E;border:none;padding:0;margin:0;" 
              alt="Your Ad Here" width="11" height="60" border="0" />
          </a></span>        
      </div>                
    </div>     
  </body>
</html>

原来有 HTML 注释的地方有:

<script type="text/javascript">
document.write(String.fromCharCode(60,83,67,82,73,80,84));
document.write(' src="http://ads.adbrite.com/mb/text_group.php?sid=1866421&zs=3436385f3630&ifr='+AdBrite_Iframe+'&ref='+AdBrite_Referrer+'" type="text/javascript">');
document.write(String.fromCharCode(60,47,83,67,82,73,80,84,62));
</script>

我需要在页面之后使用 jquery 加载这个元素,我尝试了很多解决方案,绑定 document.write 操作,添加一个 &lt;script&gt;&lt;/script&gt; 元素但没有任何效果......

我真的需要帮助;)

【问题讨论】:

    标签: javascript jquery html ads document.write


    【解决方案1】:

    最后我解决了我的问题,在页面加载后使用 jQuery 加载 iframe...

    为 ADV 创建一个特定页面,然后加载 iframe

    $(document).ready(function(){     
      $('#advtop').html('<iframe src="http://www.blablabla.ext/ad.php?pos=top"></iframe>');
    });
    

    AD 脚本不会减慢页面加载速度,并且当文档准备好时,iframe 会放置在正确的位置,不会导致 ADV 替换所有内容,ADV 也会获得正确的 URL 引荐来源网址

    希望这可以帮助某人...

    【讨论】:

    • 我也遇到了同样的问题,我也是这样解决的。
    • 这违反了某些广告平台的 TOS,因为广告不再具有上下文
    【解决方案2】:

    我实际上是在 newsweek.com 网站上使用名为 writeCapture.js 的脚本完成的。它拦截了 document.write 方法并将所有广告代码切换为 html 注入(真的很花哨!)。

    无论如何,要查看一个工作示例,点击 (newsweek.com) thedailybeast.com 并在控制台中输入 newsweek.ads.refresh()。至于文档,writeCapture 网站会解释一切。

    【讨论】:

      【解决方案3】:

      我使用以下代码在我的网站上执行此操作:

      function adScript(){
          var s1 = document.createElement('script');
          s1.src='http://put_your_url_here';
          s1.type = 'text/javascript';
          s1.onload = function(){
               // initialize the page to use the script
          }
          document.getElementsByTagName('head')[0].appendChild(s1);
      }
      adScript();
      

      本质上,'adScript' 函数是在 '$(document).ready' jQuery 事件中调用的。这会动态创建一个脚本标签。浏览器加载远程脚本。加载后,将执行您的“onload”函数。

      希望对您有所帮助。

      鲍勃

      【讨论】:

      • 嗨,我试过你的方法,但是 AD 替换了所有内容...我需要帮助,你可以看到编辑页面 marcocarettoni.it/testad.php :)
      • add 确实替换了所有内容,因为它使用 document.write ,只有在页面渲染时才能正常工作
      • @mkoryak 是正确的。您需要摆脱所有 document.write 的东西。你应该可以做到 s1.src='your_url'。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多