2

ページに、同じドメインにある PDF を表示する iframe があります。このシステムの構築方法により、src タグでフル パスを使用する必要があります (例: http://www.example.com/test.pdf )。印刷しようとすると、次のエラーが表示されます。

エラー: プロパティ 'print' へのアクセスが拒否されました

「 http://www.example.com/ 」を削除すると、Firefox は印刷できますが、システムの他の部分が台無しになります。

そのため、フルパスを使用しているという理由だけで、Firefoxはiframe srcが別のドメインにあると考えているようですが、そうではありません。これに対する回避策はありますか?

私の印刷コード:

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

1 に答える 1

2

これを回避するには、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>

議論のためにこれを参照してください

于 2013-11-03T17:17:46.170 に答える