在Internet Explorer中打印iframe内容没有打印对话框

时间:2015-04-14 12:54:04

标签: javascript jquery internet-explorer printing

我正在尝试找到解决Internet Explorer(IE)浏览器中打印图像的特定问题的方法。它是在显示打印预览默认打印对话框的情况下启动打印

到目前为止,我已经能够在不生成打印弹出/模态窗口的情况下启动打印。这是通过在ASPX页面上使用不可见的iFrame并将图像写入其中,然后打印iFrame的内容来实现的。但是,浏览器仍在抛出打印对话框。

尝试了方法:

  1. 有些消息来源建议注入一个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>
    
  2. 尝试模拟OK响应,一旦显示打印对话框也无法正常工作,因为它很难捕获 - 当对话框被触发时。

    var collapsePrintPreview = function () {
                var enter = jQuery.Event("keypress");
                enter.which = 13;
                enter.keycode = 13;
                $("input").trigger(enter);
            };
    
                window.onbeforeprint = collapsePrintPreview;
                window.onafterprint = collapsePrintPreview;
    
  3. 是否有一种已知的方法可以通过从IE浏览器的客户端禁止“打印对话框”窗口进行打印?我们非常感谢您对此问题的任何见解或解决方案。

    P.S。目标浏览器是IE 9及以上版本。

    更新1

    即使在我的ASPX页面的标签中逐字写入(在IE9中测试),VBScript代码也无法工作。它根本无法取消打印对话框!

    更新2

    整个VBScript是在ASPX页面的HTML下编写的,该页面也包含JavaScript代码。

0 个答案:

没有答案