我想获取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);
})
答案 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>