我有一个显示嵌入其中的pdf文件的iframe,我无法访问iframe元素内容。
<iframe id="testIFrame" src="http://localhost:8080/myproject/pdf/sample.pdf" width="800" onload="test(this)"></iframe>
firebug控制台中的以下代码,
var iframe = document.getElementById('testIFrame');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
console.log("Iframe Document"+innerDoc);
给我错误,
Error: Permission denied to access property "document"
当我将图像文件作为URL时,可以访问相同的iframe。仅针对pdf文件发生跨域错误。我该如何解决这个问题?
编辑:
我拥有此iframe的网址为http://localhost:8080/myproject
,iframe源指向http://localhost:8080/myproject/pdf/sample.pdf
。我可以在Firebug Net面板中看到pdf请求有
协议 -
http
,域名 -
localhost:8080
和RemoteIP -
[::1]:8080
请求标头包含引用网址
http://localhost:8080/denso/
我是否遗漏了同源政策中的内容?
原因是,只有FF显示工具栏下载,打印等嵌入iframe的pdf文件,可以通过在pdf网址末尾添加参数#toolbar=0
来禁用它。如果我可以访问iframe内容,我可以使用基于此链接的css隐藏工具栏