类型application/pdf的Javascript.print()与IE11一起失败
我已经做了一个我在我的网站上使用了一段时间的代码示例,现在在IE11和Windows8.1上运行时出现了问题 问题是当调用javascript方法.Print()时,打印窗口不会弹出类型application/pdf的Javascript.print()与IE11一起失败,javascript,html,printing,compatibility,internet-explorer-11,Javascript,Html,Printing,Compatibility,Internet Explorer 11,我已经做了一个我在我的网站上使用了一段时间的代码示例,现在在IE11和Windows8.1上运行时出现了问题 问题是当调用javascript方法.Print()时,打印窗口不会弹出 <html> <head></head> <body onload="window.document.getElementById('PDFDoc').print();"> <object id='PDFDoc' name='PDFDoc' type=
<html>
<head></head>
<body onload="window.document.getElementById('PDFDoc').print();">
<object id='PDFDoc' name='PDFDoc' type='application/pdf' data='Hello World.pdf' height="369" width="266" style="border-width:thin;border:#CCCCCC" >
</object>
</body>
</html>
我发现它谈论了一些类似的东西,但我自己却无法用它来修复
PS:我本来会上传Hello World pdf,但stackoverflow不允许我上传,所以只需使用任何pdf复制错误
在调试模式下,我发现错误对象不支持属性或方法“print”
我知道,
self.print()
可以工作,但我不确定如何将其应用到这段代码中,以打印pdf而不是整个html页面。有其他方法吗?如果我错了,请纠正我,但是
元素似乎没有方法。我想这在早期IE中起作用的原因是,他们对标准没有给出太多,但现在他们倾向于更接近标准,因此他们可能已经放弃了定制的打印方法
然而,你有很多选择:
元素并将您的元素附加到那里,然后在该iframe上调用print另请看。尽管这是一个非常老的问题,但这里有一个非常好的解决方案,它确实有效。使用IE11 v11.1039.17763.0(在IE10模式下)、Google Chrome v80.0.3987.132、MS Edge v44.17763.831.0和MS Edge(在Chrome上,测试版)v81.0.416.20进行测试,均在Win10下进行 此解决方案直接打开带有给定pdf文件的浏览器的“打印”对话框
<object id="objectPdf" data="my.pdf" type="application/pdf" width="1" height="1">
alt : <a href="my.pdf">my.pdf</a>
</object>
<iframe id="iFramePdf" src="my.pdf" style="display:none;"></iframe>
<input type="button" value="Print PDF" onclick="printTrigger();" />
<script type="text/javascript">
function printTrigger() {
try {
document.getElementById('objectPdf').printWithDialog();
} catch(e) {
document.getElementById('iFramePdf').contentWindow.print();
}
}
</script>
中高音:
函数printTrigger(){
试一试{
document.getElementById('objectPdf').printWithDialog();
}捕获(e){
document.getElementById('iFramePdf').contentWindow.print();
}
}
请注意,提供的解决方案的性能很差,因为它会启动三个而不是一个HTTP请求 一,。怎么用?我引用的是.pdf文件,不是第2页。怎么用?我引用的是一个.pdf文件,不是第3页。iFrame会导致相同的问题。我所要做的就是在iframe/object中打开包含pdf的打印对话框窗口