一.列印當前頁面指定元素中的內容
方式一:直接使用window.print();
(1)首先獲得元素的html內容(這裡建議如果有樣式最好是用內聯樣式的方式)
var newstr = document.getelementbyid(mydiv).innerhtml;//得到需要列印的元素html
(2)儲存當前頁面的整個html,因為window.print()列印操作是列印當前頁的所有內容,所以先將當前頁面儲存起來,之後便於恢復。
var oldstr = document.body.innerhtml;//儲存當前頁面的html
(3)把當前頁面替換為列印內容html
document.body.innerhtml = newstr;
(4)執行列印操作
window.print();
(5)還原當前頁面
document.body.innerhtml = oldstr;
方法例:
//mydiv為需要列印的元素id
function printpage(mydiv)
方式二:window.open("",..)新開瀏覽器對話方塊列印。
(1)獲得需要列印的元素html
var printhtml = document.getelementbyid("mydiv").innerhtml;//這個元素的樣式需要用內聯方式,不然在新開列印對話方塊中沒有樣式
(2)開啟乙個視窗,且內容設定為空。
var wind = window.open("",'newwindow', 'height=300, width=700, top=100, left=100, *******=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no');
(3)將新視窗內容填充為需要列印的html內容
wind.document.body.innerhtml = printhtml;
(4)列印
wind.print();
方法例:
//mydiv為需要列印的元素id
function printpage(mydiv)
二、列印通過url獲取的內容
直接使用
var wind = window.open(url,'newwindow', 'height=300, width=700, top=100, left=100, *******=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no');
wind.print();
對方url返回的所有內容都會被列印,,,如果知道需要列印指定內容的id,可以先將頁面獲取到,然後通過
一、中的方式列印。
即可列印;
三、功能實現總結
我做這個列印是為了列印乙個面單就像包裹上面貼的,有收寄資訊,公司log,
1.經過測試,如果使用火狐瀏覽器,有可能會變模糊(不排除是因為我操作方法沒對),但是同樣的操作在其他瀏覽器,比如google沒有出現。(有些差異,用不同瀏覽器執行即可看出)
2.如果頁面是自己系統直接列印還好。如果是為了給別人提供介面,讓對方獲得頁面內容而列印,那麼,頁面中的路徑一定要帶http字首,不然在對方網域名稱下就沒有對應。
3.列印有可能有頁首頁尾,這個解決方法是 換合適的瀏覽器,比如google呼叫列印的時候就沒有頁首頁尾,遨遊瀏覽器提供了顯示選擇。
3.尺寸不對應,因為頁面是用畫素布局,而列印是用的公釐之類的單位,這個是沒法進行換算的,跟顯示器有關,但是我們只要控制好整體長寬比就好,具體大小就無所謂了。然後列印時,比如遨遊瀏覽器,就可以設定列印比例(其他瀏覽器應該都可以)。根據實際需求調整即可。
其他疑問:
1.有更好的方式比如有個 css的列印**型別(這個我不太懂,也沒多了解)等更好的解決前端列印需求的,還請多多交流補充。
2.是否可以通過js直接控制列印比例,和列印的頁面去留。(我沒有找到合適有效的方法)
如何查詢當前頁面元素 DataList
以下是乙個比較特殊的情況,看下圖 解決思路 1.首先確定當前點選button,是哪乙個button 2.獲取當前點選button的物件 即可進行相關的操作 遇到問題 因為gridview,button都是套在datalist中的,所以你無法手動確定當前button的位置?解決方法 首先在master...
指令碼列印頁面指定區域內容
1 思路,獲取指定區域的html元素,放到新頁面中,然後列印 還有一種是在html頁面中做標識,該方法適用與能控制頁面元素的情況下 2 如下 3 var newwindow window.open 組織結構圖列印視窗 blank var str document.getelementbyid svg...
js列印指定DOM元素內的內容
1 js function printpartofdocument printpartofdocument.prototype create function if this.printcss this.printcss this.getprintcss settimeout function b....