HY 我正在寻找一种绕过IE 9中的printdialog的方法。我现在有一些方法可以用于7/8,但它们在ie9上不适用于我
有人可以给我一个提示吗?
迎接马库斯
答案 0 :(得分:11)
这里成功的关键组合似乎是在onclick事件中调用正确的函数(例如Print()而不是window.print()),以及在IE9中配置适当的安全设置(以及任何其他版本的IE)。
但是,如果通过受信任的安全HTTPS连接(具有受信任的SSL证书,而不是自签名的连接)访问具有打印对话框旁路ActiveX控件的页面,则可能不需要配置安全设置。 SSL证书)。
如果通过本地文件路径访问页面,它根本不起作用。如果您打算针对那些无法控制其浏览器的用户,请记住这两个问题,但是如果确实如此情况,您可能最好使用其他方法,使用诸如 Java或要求用户安装本机操作系统软件,如优惠券打印网站使用。
在任何情况下,使用适当的安全设置,IE9应该允许您使用以下代码绕过打印对话框弹出窗口:
<!DOCTYPE html>
<html>
<head>
<title>Print Test</title>
<script language="VBScript">
sub Print()
OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2
OLECMDEXECOPT_PROMPTUSER = 1
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
End Sub
document.write "<object id='WB' width='0' height='0' classid='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
</script>
</head>
<body>
<object id="WebBrowser1" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"> </object>
<a href="#" onclick="Print()">Click Here to Print</a>
</body>
</html>
这个确切的代码在IE7,IE8和IE9中适用于我。我还没有机会参加IE10,但它也可能在那里工作。如果IE10的任何人都可以测试,请报告。为了获得最佳效果,请记住从托管源(最好是受信任的HTTPS源)而不是本地计算机上运行它。
以下是我必须在IE9中配置以使上述代码正常工作的设置。同样,它仅在从Web提供页面时才起作用。它的工作不那么唠叨。如果我尝试直接从本地计算机加载相同的HTML文件,即使配置了相同的安全设置,它也无法正常工作。
粉红色突出显示仅表示配置的此类设置不安全。注意:您也可以选择“提示”,这更唠叨,但被认为有些安全。
答案 1 :(得分:0)
我真的只是想发表评论但是因为IE已经加速,所以应该包含在这里。为了获得多平台支持,我将其用于javascript:
sys.argv
现在检查IE 11。这是为Microsoft定义userAgent的新方法。关于此,还有其他articles。