0

我需要为 IE 6/7 编写一个插件/插件,它将拦截任何 Javascriptprint()调用并自动在默认打印机上打印页面,绕过标准打印对话框。不幸的是,我对 Windows 或 IE 编程知之甚少(我来自 Cocoa 的土地),所以我不知道从哪里开始。我我想写一个 BHO,但我不确定。任何帮助深表感谢。

我发现了一种在网页上的 VBScript 中实现这种效果的方法(覆盖 Print 函数),所以如果它像将代码包装在某种插件中一样简单,那将是理想的。

4

3 回答 3

0

试试这个

if(navigator.appName == "Microsoft Internet Explorer"){
  var PrintCommand = '<object ID="PrintCommandObject" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>';
  document.body.insertAdjacentHTML('beforeEnd', PrintCommand);
  PrintCommandObject.ExecWB(6, 2);
  PrintCommandObject.outerHTML = "";
} else {
  window.print();
}

但它不适用于 Windows XP SP2(和 Windows Server 2003 SP1 或更高版本)。

于 2009-01-16T13:15:13.423 回答
0

我在几年前编写了和 activex 控件。

而且是三二码。

SendKeys( cntrl + P )
SendKeys( enter )
于 2009-05-09T15:12:45.670 回答
0

我可以使用以下脚本实现抑制 IE11 中的多个打印对话框。

function callThisPrintFunction() {

  var isIE11 = !!navigator.userAgent.match(/Trident.*rv[ :]*11\./);
  if (navigator.appName == "Microsoft Internet Explorer" || isIE11== true) {

    var PrintCommand = '<OBJECT ID="PrintCommandObject" WIDTH=0 HEIGHT=0 ';
    PrintCommand += 'CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
    document.body.insertAdjacentHTML('beforeEnd', PrintCommand);
    PrintCommandObject.ExecWB(6, 2); PrintCommandObject.outerHTML = "";
    window.close();
  }
  else {
    window.print();
  }
}

问题:有没有办法在 Chrome/Firefox 中实现这一点?

于 2019-07-30T19:52:34.293 回答