是的,但是我想理解一下它的代码,但是我没有看明白?能不能给点解释,在线等!!!

解决方案 »

  1.   

    function printFrame(frame, onfinish) 
    {
        if ( !frame ) 如果frame未定义
        {
    frame = window;则定义为当前窗口
        }
        if ( frame.document.readyState !== "complete" &&如果窗口内readyState的值不是complete
           !confirm("The document to print is not downloaded yet! Continue with printing?") ) 且你按了No键
        {
            if ( onfinish ) 如果参数onfinish 真
            {
               onfinish();执行事件
            }
    return;
        }
        if ( printIsNativeSupport() ) 
        {
        /* focus handling for this scope is IE5Beta workaround,
           should be gone with IE5 RTM.
        */
            var focused = document.activeElement; 获得当前活动元素
            frame.focus();设置当前窗体获得焦点
            frame.self.print();打印窗体
            if ( onfinish ) 打印完了
            {
                onfinish();处理打印完的事情
            }
            if ( focused && !focused.disabled ) 如果刚才活动的元素有焦点且允许停留
            {
    focused.focus();聚焦
            }
        return;
    }
        var eventScope = printGetEventScope(frame);
        var focused = document.activeElement; window.printHelper = function() 
    {
    execScript("on error resume next: printWB.ExecWB 6, 1", "VBScript");
    printFireEvent(frame, eventScope, "onafterprint");
    printWB.outerHTML = "";
    if ( onfinish ) {
    onfinish();
    }
    if ( focused && !focused.disabled ) {
    focused.focus();
    }
    window.printHelper = null;
    }
    document.body.insertAdjacentHTML("beforeEnd",
    "<object id=\"printWB\" width=0 height=0 \
    classid=\"clsid:8856F961-340A-11D0-A96B-00C04FD705A2\"></object>");
    printFireEvent(frame, eventScope, "onbeforeprint");
    frame.focus();
    window.printHelper = printHelper;
    setTimeout("window.printHelper()", 0);
    }// helpers
    function printIsNativeSupport() 
    {
        var agent = window.navigator.userAgent;
        var i     = agent.indexOf("MSIE ")+5;
        return parseInt(agent.substr(i)) >= 5 && agent.indexOf("5.0b1") < 0;
    }function printFireEvent(frame, obj, name) 
    {
        var handler = obj[name];
        switch ( typeof(handler) ) 
        {
            case "string": frame.execScript(handler); break;
            case "function": handler();
        }
    }function printGetEventScope(frame) 
    {
        var frameset = frame.document.all.tags("FRAMESET");
        if ( frameset.length ) 
        {
            return frameset[0];
        }
        return frame.document.body;
    }