這裡教大家如何在html裡面製造出彈跳視窗“Modal”,並列印畫面時只列印該Modal的部分
往往在製作網頁時會用到彈跳視窗Modal,如下圖
而在列印畫面時,若不加以設定則會聯同後面的畫面一起列印出來,因此在這裡提供大家一個方法
首先我們在畫面中先建立一個modal,以下為html:
<div class="modal fade" id="myModal" role="dialog"> <div class="modal-dialog modal-lg"> <div class="modal-content printMe"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">×</button> <h4 class="modal-title" id="modal_header">Modal Header</h4> </div> <div class="modal-body"> <p>This is a large modal.</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" id="btnPrint">Print this page</button> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div>
接著再加入下方的javascript
<script> //-----Print Modal Start-----// jQuery.fn.extend({ printElem: function () { var cloned = this.clone(); var printSection = $('#printSection'); if (printSection.length == 0) { printSection = $('<div id="printSection"></div>') $('body').append(printSection); } printSection.append(cloned); var toggleBody = $('body *:visible'); toggleBody.hide(); $('#printSection, #printSection *').show(); window.print(); printSection.remove(); toggleBody.show(); } }); $(document).ready(function () { $(document).on('click', '#btnPrint', function () { $('.printMe').printElem(); }); }); //-----Print Modal End-----// </script>
透過此方法則可只列印modal中的資料!
David Kung 2017/07/19
沒有留言: