无法打印iframe中加载的pdf

时间:2014-10-10 12:26:53

标签: javascript iframe

我有一个带按钮和IFRAME的页面。在IFRAME中,我正在动态加载来自不同域的PDF文件。

当我尝试使用按钮操作打印文件时,我收到以下错误。

Uncaught SecurityError: Blocked a frame with origin "http://localhost:8080" from accessing a frame with origin "http://www.cplusplus.com". Protocols, domains, and ports must match.

如果我从本地系统加载pdf文件,我将打印它。

我使用以下代码打印iframe Pdf

var iframe = document.querySelector("#unofficialtranscript");
iframe.focus();
iframe.contentWindow.print();

知道如何打印加载到另一个域中的iframe的文件。

2 个答案:

答案 0 :(得分:0)

我认为您需要查看same origin policy。只有在接受政策时,Javascript才会调用窗口或iframe。

您可能需要改为使用Postmessage API

请查看here

答案 1 :(得分:0)

如果父DOM和子DOM(即iframe)都来自同一个域,那么它将正常工作。

如果没有,那么使用像Porthole这样的库来进行不同域之间的交叉通信。

演示网站:http://sandbox.ternarylabs.com/porthole/

注意:您应该可以访问代码中使用的两个域。