window.print()想必webnd比较常用的功能了。直接window.print()会打印整个页面的元素,包括按钮等。
通常情况下,我们需要的是打印指定的页面及里面的数据。下面给出亲测可用的代码。
//打印
function printReport() {
//搞定 input 和 可输入的div -- (html() 或者 innerHTML 获取不到 输入框的值)
$("input,div .EditDiv").each(function(){
$(this).attr('value',$(this).val());
});
//搞定 textarea
$("textarea").each(function(){
$(this).html($(this).val());
});
bdhtml = window.document.body.innerHTML;
sprnstr = "<!--startprint-->"; //开始打印标识字符串有17个字符
eprnstr = "<!--endprint-->"; //结束打印标识字符串
prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr) + 17); //从开始打印标识之后的内容
prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr)); //截取开始标识和结束标识之间的内容
window.document.body.innerHTML = prnhtml; //把需要打印的指定内容赋给body.innerHTML
window.print(); //调用浏览器的打印功能打印指定区域
//window.document.body.innerHTML = bdhtml;//重新给页面内容赋值;
setTimeout(location.reload(), 2000);
}
解决打印内容内输入框无法获取到值的问题。
完善: - 页面<style> </ style>标签内加入以下代码,去除打印的页眉页脚及链接信息
/*去除 打印 的页眉页脚 及 链接信息*/
@page {
size: auto; /* auto is the initial value */
margin: 0mm; /* this affects the margin in the printer settings */
}
补充:(指定位置进行分页打印,在分页处加上下面代码即可)
<div style="page-break-after: always">
</div>