我想获取iframe的内容,但发生了错误

时间:2015-09-07 10:56:08

标签: javascript jquery html iframe

我想获取iframe的内容,但发生了错误。

错误:访问属性'文档'

的权限被拒绝

... irstChild)},contents:function(a){return m.nodeName(a," iframe")?a.contentDocument ...

我的代码:

<iframe frameborder="0" scrolling="no" width="130" height="198"
   src="https://tpc.googlesyndication.com/simgad/9598136166282506848" name="imgbox" class="iView">
   <p>iframes are not supported by your browser.</p>
</iframe>


$(document).ready(function(){
    var cnt = $(".iView").contents();
    console.log(cnt);
    })

4 个答案:

答案 0 :(得分:1)

相同的源策略限制您访问iframe内容中的DOM。但是,它不会阻止您几乎不嵌入页面。

有关相同原始政策及其解决方法的详细信息,请参阅以下社区wiki:Ways to circumvent the same-origin policy

答案 1 :(得分:0)

通过Javascript,您可以访问iFrame内容,如果它来自同一台服务器。否则,它将不允许您访问iFrame内容。 错误:拒绝访问属性“文档”的权限。

答案 2 :(得分:0)

实际上,当您从跨域执行此操作时,无法执行此操作。您将获得权限被拒绝错误。当Iframe源只来自同一台服务器时,就可以完成。

答案 3 :(得分:0)

我创建了一个示例代码。现在,您可以轻松地从不同的域中了解您无法访问iframe的内容。我们可以访问相同的域名iframe内容

我分享了我的代码,请运行此代码检查控制台。我在控制台打印图像src。有四个iframe,两个iframe来自同一个域名&amp;另外两个来自其他域名(第三方)。你可以看到两个图像src(https://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif

https://www.google.com/logos/doodles/2015/arbor-day-2015-brazil-5154560611975168-hp2x.gif)在控制台上也可以看到两个权限错误(2错误:拒绝权限访问属性&#39;文档&#39;

... irstChild)},contents:function(a){return m.nodeName(a,&#34; iframe&#34;)?a.contentDocument ...

)来自第三方iframe。

<body id="page-top" data-spy="scroll" data-target=".navbar-fixed-top">
<p>iframe from same domain</p>
  <iframe frameborder="0" scrolling="no" width="500" height="500"
   src="iframe.html" name="imgbox" class="iView">

</iframe>
<p>iframe from same domain</p>
<iframe frameborder="0" scrolling="no" width="500" height="500"
   src="iframe2.html" name="imgbox" class="iView1">

</iframe>
<p>iframe from different  domain</p>
 <iframe frameborder="0" scrolling="no" width="500" height="500"
   src="https://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif" name="imgbox" class="iView2">

</iframe>

<p>iframe from different  domain</p>
 <iframe frameborder="0" scrolling="no" width="500" height="500"
   src="http://d1rmo5dfr7fx8e.cloudfront.net/" name="imgbox" class="iView3">

</iframe>

<script type='text/javascript'>


$(document).ready(function(){
    setTimeout(function(){


        var src = $('.iView').contents().find(".shrinkToFit").attr('src');
    console.log(src);
         }, 2000);


    setTimeout(function(){


        var src = $('.iView1').contents().find(".shrinkToFit").attr('src');
    console.log(src);
         }, 3000);


    setTimeout(function(){


        var src = $('.iView2').contents().find(".shrinkToFit").attr('src');
    console.log(src);
         }, 3000);

         setTimeout(function(){


        var src = $('.iView3').contents().find("img").attr('src');
    console.log(src);
         }, 3000);


    })


</script>
</body>