前端自選區域打印,解決iframe不顯示樣式

1、選定區域

<!--開始-->
<!--startprint-->
。。。內容。。。
<!--endprint-->
<!--結束-->

打印按鈕<button onclick="doPrint1()">打印</button>

function doPrint1() {
	    var bodyhtml=window.document.body.innerHTML;   //獲取頁面html
	    var startprint="<!--startprint-->";   
	   var  endprint="<!--endprint-->";   
	    var printhtml=bodyhtml.substr(bodyhtml.indexOf(startprint)+17);   
	    printhtml=printhtml.substring(0,printhtml.indexOf(endprint));   //截取要打印的html
	    
	    var iframe = document.createElement('IFRAME');//創建iframe
	    iframe.setAttribute('style', 'display:none;');//隱藏iframe(無感打印區域)
	    var doc = null;
	    document.body.appendChild(iframe);
	    doc = iframe.contentWindow.document;
	    //引入css文件,同時插入我們截取的需要打印的html
	    doc.write('<html><head><link rel="stylesheet" href="/css/dayin.css?ts=20200507" media="all"></head><body class="">'+printhtml+'</body></html>');
	    doc.close();
	    iframe.contentWindow.focus();
	    iframe.contentWindow.print();//打印
	    document.body.removeChild(iframe);//刪除iframe
	}

注: 解決iframe中內容css丟失的解決方案是將打印區域所需要的css放入一個css文件中,在iframe中引用文件即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章