使用window.print()方法可以实现页面的打印功能,但是这个方法打印的是当前整个页面。如果要想打印某一指定区域该怎么实现呢?
思路可以是:用想要打印的区域来替换页面内容。
获取需要打印的区域。保存原页面body的内容。用需要打印的区域替换页面body内容。打印。还原页面。
var newStr = document.getElementsByClassName('printInnerHtml')[0].innerHTML; //获取打印内容var pageStr = document.body.innerHTML; //保存原页面document.body.innerHTML = newStr; //用打印区域替换原页面window.print(); //打印document.body.innerHTML = pageStr; //还原页面
如果打印区域是好几块内容的时候,可以使用字符串拼接。
var newStr = document.getElementsByClassName('printInnerHtml')[0].innerHTML; //获取打印内容newStr += document.getElementsByClassName('printInnerHtml2')[0].innerHTML; //字符串拼接 需要打印的内容var pageStr = document.body.innerHTML; //保存原页面document.body.innerHTML = newStr; //用打印区域替换原页面window.print(); //打印document.body.innerHTML = pageStr; //还原页面