javascript - Firefox 无法访问同一域上的 iframe 打印

标签 javascript firefox iframe printing

我的页面上有一个 iframe,它显示位于同一域的 PDF。由于该系统的构建方式,我需要在 src 标签中使用完整路径(例如 http://www.example.com/test.pdf )。当我尝试打印时出现以下错误:

Error: Permission denied to access property 'print'

如果我删除“http://www.example.com/ ”,Firefox 能够打印,但这会扰乱系统的其他部分。

因此,Firefox 似乎认为 iframe src 位于不同的域中,只是因为我使用了完整路径,但事实并非如此。有解决方法吗?

我的打印代码:

$('#iframe')[0].focus();
$('#iframe')[0].contentWindow.print();

最佳答案

解决这个问题的方法是使用 css @media。请引用下面的示例,

<BODY>
<STYLE type="text/css">
@media print 
{
  .dontprint{display:none} 
}
</STYLE>
<SCRIPT type="text/javascript">
function printPdf(){
        window.frames["printf"].focus();
        try {
            window.frames["printf"].print();
        }
        catch(e){
            window.print();
            console.log(e);
        }
    }
</SCRIPT>

<DIV class="dontprint" >
Some of your content here
<form><input type="button" onClick="printPdf()" value="Print"/></form>
...
...
</div>
<IFrame id="printf" src="whatever"></IFRAME>
<DIV class="dontprint" >
more content
...
...

</div>
</BODY>

Refer this for discussion

关于javascript - Firefox 无法访问同一域上的 iframe 打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17989759/

相关文章:

javascript - 解析 CSS 背景图像和选择器

javascript - 更改焦点移出时元素的 CSS

javascript - 如何结合 UA 和 AW 跟踪标签?

javascript - 无法在 Firefox 上从 Javascript 提交表单

html - 为什么 Mozilla Firefox 不支持我网站上的第三方字体?

html - 框架/CSS : Forcing Iframe to fit screen

Javascript 插入 IFRAME

Chrome 中的 Facebook iframe 应用滚动条

javascript - 自动调整高度 CSS

html - SVG 文本在 Firefox 和 Chrome 上的显示方式不同