试图拉标题和谷歌广告(jQuery)中的文字

时间:2013-07-04 10:35:40

标签: jquery text title adsense

我正在尝试从许多iframe中提取一些链接属性(text,href)。

源代码:

<iframe width="120" height="600" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" onload="var i=this.id,s=window.google_iframe_oncopy,H=s&amp;&amp;s.handlers,h=H&amp;&amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&amp;&amp;d&amp;&amp;(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){w.location.replace(h)}}" id="aswift_0" name="aswift_0" style="left:0;position:absolute;top:0;"></iframe>

内部文件(iframe)

<html>
  <head>
  <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/osd.js"></script>
  </head>
  <body marginwidth="0" marginheight="0">
     <iframe width="120" height="600" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" style="display:none" id="zrt_ads_frame1" name="zrt_ads_frame1" src="http://googleads.g.doubleclick.net/pagead/html/r20130628/r20130206/zrt_lookup.html">
     </iframe>
     <script>google_ad_client="pub-6276736854";google_ad_height=600;google_ad_slot="6197230xxx";google_ad_width=120;google_loader_used="sa";google_show_ads_impl=true;google_unique_id=1;google_async_iframe_id="aswift_0";google_ad_unit_key="212";google_start_time=1372933145673;google_ad_handling_experiment="PC";google_bpp=5;</script>
     <script src="http://pagead2.googlesyndication.com/pagead/js/r20130628/r20130206/show_ads_impl.js">
     </script>

     <script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js">
     </script>

     <script>google_protectAndRun("ads_core.google_render_ad", google_handleError, google_render_ad);</script>

     <iframe allowtransparency="true" frameborder="0" height="600" hspace="0" id="google_ads_frame1" marginheight="0" marginwidth="0" name="google_ads_frame1" scrolling="no" src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-627673xx&amp;output=html&amp;h=600&amp;slotname=6197230276&amp;w=120&amp;lmt=1372922345&amp;flash=11.7.700&amp;url=http%3A%2F%2Fahehl%2Falgeex.php&amp;dt=1372933145673&amp;bpp=5&amp;bdt=526&amp;shv=r20130628&amp;cbv=r20130206&amp;saldr=sa&amp;correlator=1372933145804&amp;frm=20&amp;adk=3222528636&amp;ga_vid=1998811959" style="left:0;position:absolute;top:0" vspace="0" width="120"></iframe>
   </body>
</html>

问题是我无法从jQuery访问第二个iFrame。

我试过了:

$(document).ready(function(){
    $('iframe').contents().find("html").html();
});

但它仅输出我:

<iframe width="120" height="600" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" style="display:none" id="zrt_ads_frame1" name="zrt_ads_frame1" src="http://googleads.g.doubleclick.net/pagead/html/r20130628/r20130206/zrt_lookup.html"></iframe>

<script>google_ad_client="pub-6276736854";google_ad_height=600;google_ad_slot="6197230xxx";google_ad_width=120;google_loader_used="sa";google_show_ads_impl=true;google_unique_id=1;google_async_iframe_id="aswift_0";google_ad_unit_key="212";google_start_time=1372933145673;google_ad_handling_experiment="PC";google_bpp=5;</script>
<script src="http://pagead2.googlesyndication.com/pagead/js/r20130628/r20130206/show_ads_impl.js"></script>

没有包含所有数据的第二个iframe。

我甚至试图找到('script').remove()。但没什么。

有什么建议吗?

谢谢你们。

1 个答案:

答案 0 :(得分:0)

不确定为什么要这样做,但是:

  1. 您无法从其他域上托管的iframe访问内容。 有关详细信息,请参阅此related question。因此,您的jQuery代码段只能在浏览器控制台中运行(没有此限制)。

  2. 如果您在加载时使用$(a_function)运行脚本,则iframe可能尚未完全加载(Google广告会执行大量异步操作)。因此,您获得的内容是功能执行时的实际内容。