Web应用程序允许用户使用浏览器的打印对话框打印pdf文档。这些文档是使用mimetype application / pdf从服务流式传输的。在Web客户端中,创建iframe并将其附加到document.body,并为源设置返回内容的服务的uri。 框架如下:
<iframe id="printPage" name="printPage" src="/remote/api/export/resource_name" style="position: absolute; top: -1000px; width: ${opts.frameWidth}px; height: ${opts.frameHeight}px;"></iframe>
javascript中的打印执行部分就像这样
let iframe = $('the_iframe_html_above');
iframe.load(() => {
window.frames.printPage.focus();
window.frames.printPage.print();
});
$('body').append(iframe);
通过这种方式,打印对话框仅在Chrome和Safari浏览器下按预期打开。
所以我的问题是:在给定这些条件的情况下,如果有一种交叉浏览器方式来执行打印操作(打开浏览器的原生打印对话框)?