Mrgtq 2016-11-20 12:55 采纳率: 0%
浏览 970
已结题

动态添加的div在打印是没有显示,请问是怎么回事(备注:只有火狐浏览器是这样)

这是打印代码:
function test(){
var dh=$("#show").innerHeight();//获取div高度
//alert("fire");
var a4=975;//a4纸高度
var s=dh/a4;//总页数
var z=parseInt(s);//取整
var y=dh/a4-z;//取余
if (y>0) {
z=z+1;
}

        for ( var int = 1; int <=z; int++) {
            var div=document.createElement("div");
            div.innerHTML='<tr><td>'+int+'/'+z+'</td></tr>';
            div.style.backgroundColor="black";
            div.style.position="absolute";
            div.style.top=a4*int+int*10+"px";
            //div.style.left="80%";
            div.style.height="20px";
            div.style.marginLeft="0px";
            $("#show").append(div);
            alert(div.style.top);
        }

}
function Print() {
test();
var Html_body = window.document.body.innerHTML;

        //var printStr = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"></head><body >";
        //var content = "";

        var bdhtml = window.document.body.innerHTML; //获得body标签内的全部html代码
        var sprnstr = "<!--startprint-->"; //声明一个字符串,用于表示打印的起始位置
        var eprnstr = "<!--endprint-->"; //标示打印的结束位置
        var prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr) + 17); //查找打印的起始字符串并加上17,因为<!--startprint-->的长度为17
        prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
        window.document.body.innerHTML = prnhtml;

        //var str = document.getElementById('show').innerHTML;     //获取需要打印的页面元素 ,page1元素设置样式page-break-after:always,意思是从下一行开始分割。
        //content = content + str;

        //printStr = printStr + content + "</body></html>";
        ////var p = document.getElementById("show");
        ////p.style.display = "none";
        ////var se = document.getElementById("select");
        ////se.style.display = "none";
        //document.body.innerHTML = printStr;
        window.print();
        window.document.body.innerHTML = Html_body;

    }
  • 写回答

1条回答

  • threenewbee 2016-11-20 15:23
    关注

    调试看下window.document.body.innerHTML = prnhtml;
    最好用正则表达式截取html,还有,ff浏览器的innerhtml是否过滤了注释代码

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料