Javascript呼叫IE列印以及預覽列印的方法
七月 31, 2008 at 12:46 下午 | 張貼於Javascript/HTML | 13 則迴響標籤: div, 部分預覽, 部分列印, HTML, Javascript, Preview, Print
剛好有機會用到,所以我整理了Javascript關於IE列印的一些寫法,一般比較少見的,就是區塊列印以及區塊預覽列印,可能很多人都不曉得要怎麼處 理,以下是我查了一些語法資料,然後自己寫個sample測試出來的code,我的寫法不一定是最好的,如果大家如果有發現更好的寫法,希望可以互相交流 一下。
整頁列印:
html部分:
<INPUT TYPE="button" value="整頁列印" onclick="print()">
Javascript部分:
N/A
部分列印(只列印div包起來的網頁):
html部分:
<div id="block">
<P><img id="ruten" name="ruten" SRC="http://www.ruten.com.tw/imgs/2008/logo.gif"></P>
</div>
<input type="button" value="部分列印" onclick="printScreen(block)">
Javascript部分:
//列印div包起來的部分並且列印完畢後自動關閉列印網頁
function printScreen(block){
var value = block.innerHTML;
var printPage = window.open("","printPage","");
printPage.document.open();
printPage.document.write("<HTML><head></head><BODY onload='window.print();window.close()'>");
printPage.document.write("<PRE>");
printPage.document.write(value);
printPage.document.write("</PRE>");
printPage.document.close("</BODY></HTML>");
}
整頁預覽列印:
html部分:
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=wb name=wb width=0></OBJECT>
<INPUT TYPE="button" value="整頁預覽" onclick="javascript:wb.execwb(7,1)">
Javascript部分:
N/A
部分預覽列印(只預覽div包起來的部份):
html部分:
<div id="block">
<P><img id="ruten" name="ruten" SRC="http://www.ruten.com.tw/imgs/2008/logo.gif"></P></div>
<input type="button" value="區塊預覽" onclick="previewScreen(block)">
Javascript部分:
//預覽div包起來的部分並且列印完畢後自動關閉列印網頁
function previewScreen(block){
var value = block.innerHTML;
var printPage = window.open("","printPage","");
printPage.document.open();
printPage.document.write("<OBJECT classid='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2' height=0 id=wc name=wc width=0></OBJECT>");
printPage.document.write("<HTML><head></head><BODY onload='javascript:wc.execwb(7,1);window.close()'>");
printPage.document.write("<PRE>");
printPage.document.write(value);
printPage.document.write("</PRE>");
printPage.document.close("</BODY></HTML>");
}
13 則迴響 »
發表迴響
在WordPress.com寫網誌. | Theme: Pool by Borja Fernandez.
項目 與 留言 feeds.
請問板大這樣的語法是否目前電腦的安全性
已預設不能使用了
我找了很多類似的語法測試
好像都是
的安全性問題
是可以在主機設定為安全嗎?
我的是XP SP3 IE6
都會跳出 訊息 這是不安全的ActionX
然後按按鈕就跳出不支援此屬性或方法
留言由 ironman— 三月 20, 2009 #
您好,Javascript是在client端執行的,所以您不能執行的問題是不會跟server有關係,您可以檢查看看把browser的近端網路安全性調低試試看,或是到進階裡面把ActiveX的選項都打開, 另外也可以改用firefox來測試看看,我這裡是都可以執行。
留言由 Nievor— 三月 20, 2009 #
謝謝版大的說明
小弟是想先讓使用者按按鈕可以預覽列印,我知道將AciveX及安性降低都可以正常跳出預覽頁面,只是出現不能正常使用時,要叫瀏覽者再去改電腦的設定,使用者一定會覺得麻煩,有的也不見得會改設定,想說是不是有什麼方法可以更有效的避免這種情況發生。
另小弟請問板大在FireFox也是能夠使用以上語法預覽列印嗎?
wb.execwb(7,1)不是只有IE才能辨別?
或是您是指print()函式
謝謝
留言由 ironman— 三月 21, 2009 #
您好, 我是Win2000+IE6, 用預設設定是都可以執行的, 晚點有空再幫你測XP+IE7, 另外預覽是只有IE可以用沒錯。
留言由 Nievor— 三月 24, 2009 #
您好,我測了一下IE7預設是會擋掉ActiveX,必須再另外開啟, 至於ActiveX明明就是for IE only, 卻在IE7預設就把它擋掉, 真的是很怪的作法, 只能說微軟ActiveX的設計就很有問題。
我後來google了一下,似乎沒有什麼比較有效的方法, 但是找到有個似乎可以模擬它成為localhost近端網路的程式,請參考這個連結。
http://www.articulate.com/forums/articulate-presenter/3174-remove-activex-warning.html
希望有幫到您 ^^
留言由 Nievor— 三月 26, 2009 #
您好
首先謝謝您分享的這份文章
不過在使用上遇到一個問題
我使用了部份預覽列印
但是預覽的結果字型與對齊都會消失
彷彿不曾設定過
以下是我的程式碼
‘
‘
‘
‘
‘
‘ 資料庫內容
‘
‘
‘
‘
列印的部份與文章上相同
以下是clean函數
Function Clean(str As String)
str=Replace(str,vbCrLf,"")
Clean=Replace(str,chr(32)," ")
End Function
但是按下列印的結果
不管是置中對齊或是字體大小
都和原本不同
請問要如何解決
留言由 阿葉— 四月 2, 2009 #
您好,我測試了一下,是不會有這樣的問題發生喔,您好像有用到.Net的語法,可否把檔案寄給我nievorwei@gmail.com,我可以幫您測試看看。
留言由 Nievor— 四月 4, 2009 #
[...] {int} autoSplit 自動分頁,預設為0 * @param {int} autoPrint 自動打印,預設為0 * @see http://nievor.wordpress.com/2008/07/31/javascript_print_preview/ */ function JsPrinter [...]
Pingback by [轉貼][Javascript] 實現網頁列印 自動分頁 自動列印 « Aska13’s Blog— 五月 4, 2009 #
我想請問
這個列印程式可以控制列印的邊界嗎
每次印出來左右都空一大片
是否有方法改善呢
留言由 Ryan— 一月 1, 2010 #
好用心喔!!
謝謝分享喔~~~
留言由 易春木— 一月 14, 2010 #
感謝分享
留言由 劉建佑— 七月 29, 2011 #
[...] JavaScript列印頁面非常簡單,只需要一行就可以達成,更多詳細資料可以參考Javascript呼叫IE列印以及預覽列印的方法@小峰峰的筆記本。 [...]
Pingback by JavaScript列印頁面及mailto寄信亂碼 » 蛙齋— 十二月 28, 2011 #
我在DIV裡放 好像按下去沒反應耶 會有影響嗎?
留言由 訪客— 三月 30, 2012 #