js iframe 打印 打印預覽 頁眉頁腳的設立

js iframe 打印 打印預覽 頁眉頁腳的設置

1、window.print方式:

  //jsp頁面 打印按鈕: <input type="button" value="打印" onclick="print();"> //js 中: function print(){ window.print(); //style樣式中,設置隱藏按鈕打印: <style> @media print { .noprint{display:none} } </style>

  打印iframe:

  <html xmlns="" > <head> <title>標題頁</title> <body> <input onclick='prn()' type=button value=print_Iframe$amp;>amp;$lt;br> <iframe id=myframe src=""$amp;>amp;$lt;/iframe> <script> function prn() { var win=window.open("about:blank") //打開一個空頁面 win.moveTo(100,100) //移動到指定位置 win.location=document.all.myframe.src //指定頁面的內容 win.print() //打印頁面 } </script> </body> </html>

2,WebBrowser控件方式

  WebBrowser是IE內置的瀏覽器控件,無需用戶 下載 .

  頁面上加上代碼

  <object ID="WebBrowser" name="WebBrowser" WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'$amp;>amp;$lt;/object>

  js:函數中加入代碼:

  WebBrowser.ExecWB(6,1); //打印設置 WebBrowser.ExecWB(8,1); //打印預覽 WebBrowser.ExecWB(7,1); 關於這個組件還有其他的用法,列舉如下: WebBrowser.ExecWB(1,1) 打開 WebBrowser.ExecWB(2,1) 關閉現在所有的IE窗口,並打開一個新窗口 WebBrowser.ExecWB(4,1) 保存網頁 WebBrowser.ExecWB(6,1) 打印 WebBrowser.ExecWB(7,1) 打印預覽 WebBrowser.ExecWB(8,1) 打印頁面設置 WebBrowser.ExecWB(10,1) 查看頁面屬性 WebBrowser.ExecWB(15,1) 好像是撤銷,有待確認 WebBrowser.ExecWB(17,1) 全選 WebBrowser.ExecWB(22,1) 刷新 WebBrowser.ExecWB(45,1) 關閉窗體無提示

  這種方式打印iframe:

  window.parent.document.i1.window.WebBrowser.ExecWB(6, 1);

  選擇你要的功能。

  但是打印是會把整個頁面都打印出來的,頁面裏面有什麼東西就打印出來,我們有時候只需要打印數據表格,這時我們就要寫一個樣式了:把不想打印的部份隱藏起來: 
樣式內容:

  <style type="text/css" media=print>

  .noprint...{display : none } </style>

3,打印iframe 中的內容:

  主要語句:document.all.iframename.ExecWB(6,1); 便可以只打印iframe中的頁面。

  document.all.iframename.ExecWB(7,1); 打印預覽

  …………

  使用這種方式打印不需要加:<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'$amp;>amp;$lt;/object>

  例如:

  function printPage() { PageSetup_Null() ; document.all.iframename.ExecWB(6,1); } //打印預覽 function printPreview() { document.all.iframename.ExecWB(7,1); }

  //設置網頁打印的頁眉頁腳爲空 function PageSetup_Null() { try{ var Wsh=new ActiveXObject("WScript.Shell"); Wsh.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\header",""); //通過修改註冊表的方式 頁眉和頁腳也可以改成你想要的內容 Wsh.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\footer",""); }catch(e){ alert(e.name+e.message); } }

  通過:document.all.iframe.***的方式打印 不僅可以只打印本頁面中的iframe 還可以多層嵌套找到要打印的iframe

  例如:

  first.html

  <body> firstpage <input type="button" onclick="printPreview()" value="打印預覽"> <input type="button" onclick="printPage()" value="打印"> <br/> <iframe name="iframe" width="500" src="secend.html"$amp;>amp;$lt;/iframe> </body>

  secend.html

  <body > secendpage <br/> <br/> <iframe name="i1" src="third.html"$amp;>amp;$lt;/iframe> <iframe name="i2" src="thirdd.html"$amp;>amp;$lt;/iframe> <br> </body>

  third.html: 隨意吧

  js:

  //打印 function printPage() { //頁眉頁腳空…… 這裏沒寫了 iframe.document.all.i1.ExecWB(6, 1); " } //打印預覽 function printPreview() { iframe.document.all.i1.ExecWB(7, 1); }

  於是 以此類推: 就可以實現任意的iframe嵌套打印和打印預覽問題了

  例如從子頁面找父頁面打印也可:window.parent.document.all.i1.ExecWB(6, 1);

  至於頁眉頁腳的設置問題我想再細說說

  如果你按路徑打開註冊表 就一目瞭然

  
925x628

  你可以通過更改註冊表裏的信息改變頁眉頁腳的任何設置

  符號 含義 
&w  網頁標題 
&u 網頁地址 (URL) 
&d  短日期格式(由“控制面板”中的“區域設置”指定) 
&D  長日期格式(由“控制面板”中的“區域設置”指定) 
&t  由 “控制面板”中的“區域設置”指定的時間格式 
&T  24 小時時間格式 
&p  當前頁碼 
&P  總頁數 
&b  文本右對齊(請把要右對齊的文字放在“&b”之後) 
&b&b 文字居中(請把要居中的文字放在“&b”和“&b” 之間) 
&&   單個 & 號 (&)

  Wsh.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\header","&b頁眉&b");   //設置頁眉居中

  遺留問題:1,火狐的兼容問題 火狐裏 至今沒實現打印預覽

  2,改變註冊表設置頁眉頁腳 畢竟不友好 希望有更好的方式

  希望大蝦們幫幫忙

  遺留問題已解決:

  1,火狐 我找了個插件 效果還挺漂亮的 我已經上傳了 大家可以下載下來看看

  2,沒有找到別的方式 最後還是選擇了修改註冊表

  不過document.all.Iframe.ExecWB(6,1,2);  第三個參數設爲2 表示等待打印完成

  剛開始試的時候發現他並不能等待打印完成再執行我要的函數 後來發現加上setTimeout 就好使了

  所以我還是修改註冊表 等打印完成後再將註冊表改回來

  

  //打印 function printPage() { //設置頁眉頁腳 PageSetup_Null() document.all.Iframe.ExecWB(6,1,2); //設置頁眉頁腳 setTimeout(" PageSetup_Default() ",200); }

  採用這種方式打印完成後註冊表被修改被原來的值就可以了 最然沒弄明白爲什麼要加setTimeout() 但 真的好使 確實實現了 打印後 再把註冊表修改爲原來值

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