当前位置: 首页 > 工具软件 > PrintArea > 使用案例 >

JQuery printarea 打印空白问题解决

林博厚
2023-12-01

代码用旧版的printarea进行网页打印

(function (jQuery) {
    var printAreaCount = 0;
    jQuery.fn.printArea = function () {
        var ele = jQuery(this);
        var idPrefix = "printArea_";
        removePrintArea(idPrefix + printAreaCount);
        printAreaCount++;
        var iframeId = idPrefix + printAreaCount;
        var iframeStyle = 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;';
        iframe = document.createElement('IFRAME');
        jQuery(iframe).attr({
            style: iframeStyle,
            id: iframeId
        });
        document.body.appendChild(iframe);
        var doc = iframe.contentWindow.document;
        jQuery(document).find("link").filter(function () {
            return jQuery(this).attr("rel").toLowerCase() == "stylesheet";
        }).each(
                function () {
                    doc.write('<link type="text/css" rel="stylesheet" href="'
                            + jQuery(this).attr("href") + '" >');
                });
//        doc.write('<div class="printlogo" ><img src="'+webPath+'/resources/style/'+version+'/usercenter/images/printlogo.jpg"/> </div>');
        doc.write('<div class="' + jQuery(ele).attr("class") + '">' + jQuery(ele).html()
                + '</div>');
       var bdhtml= doc.body.innerHTML;
        var a=bdhtml.substr(bdhtml.indexOf("<div class=\"printtitle marginb30 margint30\">"),bdhtml.indexOf("<div class=\"printtitle marginb30 margint30\">")+1000);
         doc.close();
        var frameWindow = iframe.contentWindow;
        frameWindow.close();
        frameWindow.focus();
      var a = frameWindow.print();
        var b="1";
    }
    var removePrintArea = function (id) {
        jQuery("#iframe" + id).remove();
    };
})


原始代码一直用着没问题,突然有的浏览器点击打印时预览出来一片空白

查看官网最新的源码发现

doc = iframe.contentWindow.document; 使用时需要先open

加上doc.open();问题解决


 类似资料: