在IE9中绕过Printdialog

Mar*_*iti 3 printing internet-explorer-9

我正在寻找一种方法来绕过IE 9中的printdialog.我现在有一些方法,即7/8但他们在ie9不适合我

有人可以给我一个提示吗?

迎接马库斯

pur*_*ion 11

成功的关键组合似乎是在onclick事件中调用正确的函数(例如Print()而不是window.print()),以及在IE9中配置适当的安全设置(以及任何其他版本的IE).

但是,如果通过受信任的安全HTTPS连接(具有受信任的SSL证书,而不是自签名SSL证书)连接访问具有打印对话框旁路ActiveX控件的页面,则可能不需要配置安全设置. .

如果通过本地文件路径访问页面,它根本不起作用.如果您打算针对那些无法控制其浏览器的用户,请记住这两个问题,但是如果确实是这种情况,您可能最好使用其他方法,使用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>
Run Code Online (Sandbox Code Playgroud)

这个确切的代码在IE7,IE8和IE9中适用于我.我还没有机会参加IE10,但它也可能在那里工作.如果IE10的任何人都可以测试,请报告.为了获得最佳结果,请记住从托管源(最好是受信任的HTTPS源)而不是本地计算机上运行它.

以下是我必须在IE9中配置以使上述代码工作的设置.同样,它仅在从Web提供页面时才起作用.它的工作不那么唠叨.如果我尝试直接从本地计算机加载相同的HTML文件,即使配置了相同的安全设置,它也无法正常工作.

粉红色突出显示仅表示配置的此类设置不安全.注意:您也可以选择"提示",这更唠叨,但被认为有些安全.

IE9安全设置