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

这是打印代码:
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个回答

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐