Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet explorer 通过Chrome/Firefox/IE中的iframe打印PDF_Internet Explorer_Google Chrome_Firefox_Pdf_Iframe - Fatal编程技术网

Internet explorer 通过Chrome/Firefox/IE中的iframe打印PDF

Internet explorer 通过Chrome/Firefox/IE中的iframe打印PDF,internet-explorer,google-chrome,firefox,pdf,iframe,Internet Explorer,Google Chrome,Firefox,Pdf,Iframe,我想触发一个PDF文件的打印,我将其加载到iframe中 环顾四周后,我想到了以下几点 <iframe name="pdfname" id="pdfid"></iframe> <button id="printbtn">Print</button> <script language="javascript" type="text/javascript"> $(document).ready(function () {

我想触发一个PDF文件的打印,我将其加载到iframe中

环顾四周后,我想到了以下几点

<iframe name="pdfname" id="pdfid"></iframe>

<button id="printbtn">Print</button>

<script language="javascript" type="text/javascript">
    $(document).ready(function () {

        $("#pdfid").load(function() {
            window.frames["pdfname"].focus();
            window.frames["pdfname"].print();
        });

        $("#printbtn").click(function () {
            $("#pdfid").attr("src", '@Url.Action("PdfTest", "Home")');
        });
    });
</script>

印刷品
$(文档).ready(函数(){
$(“#pdfid”).load(函数(){
frames[“pdfname”].focus();
window.frames[“pdfname”].print();
});
$(“#printbn”)。单击(函数(){
$(“#pdfid”).attr(“src”,“@Url.Action”(“PdfTest”,“Home”));
});
});
这在Chrome中非常有效

在Firefox中,我遇到了以下错误(我在某个地方读到,这是一个应该在版本21中修复的bug,但它没有修复)

访问属性“打印”的权限被拒绝

在InternetExplorer10和9中,我得到以下错误

调用对象无效

这似乎指向我的MVC操作生成的PDF

我看到过许多类似于我的问题的帖子,但到目前为止还没有找到一个有效的解决方案

我真正想知道的是RADPDF是如何在每个浏览器中都能工作的

我知道这是可以做到的,我需要你们大脑的帮助


干杯

尝试以下方法,可能适用于所有浏览器。(我仅使用IE8和chrome进行了测试)


@媒体印刷品
{
.dontprint{display:none}
}
函数printIframePdf(){
window.frames[“printf”].focus();
试一试{
window.frames[“printf”].print();
}
捕获(e){
window.print();
控制台日志(e);
}
}
函数printObjectPdf(){
试试{
document.getElementById('idPdf').Print();
}
捕获(e){
printIframePdf();
控制台日志(e);
}
}
函数idPdf_onreadystatechange(){
如果(idPdf.readyState==4)
setTimeout(printObjectPdf,1000);
}
PDF插件不可用。

嗨,你有没有想过?愿意分享吗?
<style type="text/css">
    @media print 
    {
        .dontprint{display:none} 
    }
</style>
<script type="text/javascript">
    function printIframePdf(){
        window.frames["printf"].focus();
        try {
            window.frames["printf"].print();
        }
        catch(e){
            window.print();
            console.log(e);
        }
    }
    function printObjectPdf() {
        try{            
            document.getElementById('idPdf').Print();
        }
        catch(e){
            printIframePdf();
            console.log(e);
        }
    }

    function idPdf_onreadystatechange() {
        if (idPdf.readyState === 4)
            setTimeout(printObjectPdf, 1000);
    }
</script>
<div class="dontprint" >
    <form><input type="button" onClick="printObjectPdf()" class="btn" value="Print"/></form>
</div>

<iframe id="printf" name="printf" src="http://pdfUrl.pdf" frameborder="0" width="440" height="580" style="width: 440px; height: 580px;display: none;"></iframe>
<object id="idPdf" onreadystatechange="idPdf_onreadystatechange()"
    width="440" height="580" style="width: 440px; height: 580px;" type="application/pdf"
    data="http://pdfUrl.pdf">
    <embed src="http://pdfUrl.pdf" width="440" height="580" style="width: 440px; height: 580px;" type="application/pdf">
    </embed>
    <span>PDF plugin is not available.</span>
</object>