一尘不染

如何从Javascript调用打印预览?

javascript

我有一个页面应该在加载时启动“打印预览”页面。

我找到了这个:

var OLECMDID = 7;
/* OLECMDID values:
* 6 - print
* 7 - print preview
* 1 - open window
* 4 - Save As
*/
var PROMPT = 1; // 2 DONTPROMPTUSER
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
WebBrowser1.ExecWB(OLECMDID, PROMPT);
WebBrowser1.outerHTML = "";

但…

  1. 它在FireFox中不起作用。
  2. 这有点丑陋。

IE是否有更好的方法或适用于FireFox的方法?


阅读 376

收藏
2020-05-01

共1个答案

一尘不染

您不能,“打印预览”是浏览器的功能,因此应避免被JavaScript调用,因为这会带来安全风险。

这就是您的示例使用Active X(绕过JavaScript安全问题)的原因。

因此,请改用您应该已经拥有的打印样式表,然后将其显示为media = screen,print而不是media = print。

阅读AlistApart:将要打印,以获得有关打印样式表主题的好文章。

2020-05-01