好久沒有寫前端的文章了,今天就來講說js一個比較方便的功能,打印當前頁面或保存成pdf吧。html
js有一個原生的函數,print(),顧名思義就是打印。可是有時候咱們須要打印頁面某些部分,因此須要對頁面進行處理一下:前端
能夠寫一個函數去封裝:函數
function preview() { body = window.document.body.innerHTML; startpoint= "<!--startpoint-->"; endpoint= "<!--endpoint-->"; printdb= body.substring(body.indexOf(startpoint) + 17); printdb = printdb.substring(0, printdb.indexOf(endpoint)); window.document.body.innerHTML = printdb ; window.print(); window.document.body.innerHTML = body ; }
這裏首先獲取當前頁面的innerHtml,而後設置想要頁面開始的點,和結束的點,這樣就能夠匹配出咱們想要打印的部分了,this
接着咱們須要把當前頁面的innerhtml設置爲打印的頁面,而後打印,最後把頁面設置會一開始的樣子。spa
固然若是咱們不須要打印部分頁面的話直接:3d
window.print();
就搞定了。code
打印效果圖:htm
不過這裏的打印會出現咱們input有值,可是打印的pdf中input沒有值的狀況:blog
因此咱們須要將jq將input中的值循環賦值:input
var input = $('input'); input.each(function () { $(this).attr("value", $(this).val()); });
這樣就不會出現input不打印的狀況了。