js控制網頁打印(js調用瀏覽器打印功能)

本文目錄一覽:

js瀏覽器打印設置打印次數

普通報表工具欄上有打印按鈕,點擊該按鈕會彈出打印頁面。

思路一:通過工具欄中的打印按鈕,進行控制。設置全局變量–打印次數,如果打印次數為0,則直接打印,不再跳轉到打印頁面。或者在參數欄中新增一個打印按鈕,在裡面寫JS腳本。不通過工具欄中的打印按鈕實現這個功能。

思路二:在跳轉的打印頁面,只要點擊一次打印按鈕,則一方面執行打印指令,另一方面自動關閉打印頁面。同時主模板自動刷新數據,重新加載打印次數為1。

思路三:在跳轉的打印頁面,獲取全局變量–打印次數,如果為0,則打印按鈕有效。否則打印按鈕不可用,為灰色狀態。

js調用瀏覽器的打印功能

最近做了個運用瀏覽器打印合同的功能,之前沒做過,記錄一下其中遇到的問題,打印頁面建議使用新開窗口

原型圖如下:

頁面內容不多說,表格直接用table繪製,在頁面頂部加一個懸浮的打印按鈕。點擊打印按鈕調用打印機(ctrl+p)

實現的打印預覽效果如下圖:

谷歌瀏覽器可在打印預覽-更多設置-選項中去除頁眉和頁腳的勾選

打印的頁面不可出現橫向滾動條,否則會出現打印出來的內容顯示不全的問題。

請教一個在網頁中js控制默認橫向打印的問題

打印

一、普通打印(整頁打)

這個不用多說,直接按CTRL+P或引用window.print();

二、打印網頁內部分內容(自定義)

分三種方法實現

1、用css控制

引用:

@media print

.a {display:block}

.b {display:hidden}

把你不想打印的部分class設為b

首先在網頁中添加:

引用:

OBJECT id=”WebBrowser” height=”0″ width=”0″ classid=”CLSID:8856F961-340A-

11D0-A96B-00C04FD705A2″ VIEWASTEXT /OBJECT

然後就可以依次加入功能按鈕了:

引用:

input type=”button” value=”打印” input type=”button” value=”直接打印”

input type=”button” value=”頁面設置”

input type=”button” value=”打印預覽” INPUT type=”button” value=”關閉窗口”

將這兩塊東西放到 center class=noprint /center 就不會打印這些按鈕了。當然要定義noprint了:

style media=”print” .Noprint { DISPLAY: none } /style 只要把不想打印的東西的css設置成noprint就可以了。

現在就實現了基本的web打印,需要注意的情況如下:

a. 必須將ie的internet選項的安全設置中對於沒有標記為安全的ActiveX控件進行…設置成提示或者啟用,否則會報錯,導致不可用。

b. 如果在vs.net編輯環境下編輯該頁面,它經常自動的給object添加多餘的參數,有了這些東西,打印就會出錯,所以要記得最後保存的時候刪除它們。

2、用javascript打印固定標籤內的內容

a、在頁面的代碼頭部處加入JavaScript:

引用:

script language=javascript

function doPrint() {

bdhtml=window.document.body.innerHTML;

sprnstr=” !–startprint– “;

eprnstr=” !–endprint– “;

prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);

prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));

window.document.body.innerHTML=prnhtml;

window.print();

}

/script

b、在頁面正文處加上 !–startprint– 與 !–endprint– 標識。

也就是在需要用戶打印保存的正文所對應的html處附加上。同時,如果採用小偷程序獲得遠程數據並需打印,可將此等數據置於該定義標籤之內即可。

c、截取內容部分已完成,現在加個“打印”的鏈接:

a href=”javascript:;” 打印 /a

3、windows自帶功能

按住鼠標的左鍵,將你想要打印的內容選定,然後單擊右鍵選擇“打印”,在彈出的打印對話框中的“頁面範圍”中選擇“選定範圍”就可以只打印你選擇的內容了。

(三)打印去掉/添加頁眉頁腳

引用:

script language=”JavaScript”

var hkey_root,hkey_path,hkey_key

hkey_root=”HKEY_CURRENT_USER”

hkey_path=”\\Software\\Microsoft\\Internet Explorer\\PageSetup\\”

//設置網頁打印的頁眉頁腳為空

function pagesetup_null(){

try{

var RegWsh = new ActiveXObject(“WScript.Shell”)

hkey_key=”header”

RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,””)

hkey_key=”footer”

RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,””)

}catch(e){}

}

//設置網頁打印的頁眉頁腳為默認值

function pagesetup_default(){

try{

var RegWsh = new ActiveXObject(“WScript.Shell”)

hkey_key=”header”

RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,”wb頁碼,p/P”)hkey_key=”footer”

RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,”ubd”)

}catch(e){}

}

/script

input type=”button” value=”清空頁碼” onclick=pagesetup_null()

input type=”button” value=”恢復頁碼” onclick=pagesetup_default()

複製出去,看下效果就可以了

使用Javascript怎樣自動打印頁面

1、js實現(可實現局部打印)

[html] view plain copy

input id=”btnPrint” type=”button” value=”打印” onclick=”javascript:window.print();” /

input id=”btnPrint” type=”button” value=”打印預覽” onclick=preview(1) /

style type=”text/css” media=print

.noprint{display : none }

/style

p class=”noprint”不需要打印的地方/p

script

function preview(oper)

{

if (oper 10)

{

bdhtml=window.document.body.innerHTML;//獲取當前頁的html代碼

sprnstr=”!–startprint”+oper+”–“;//設置打印開始區域

eprnstr=”!–endprint”+oper+”–“;//設置打印結束區域

prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //從開始代碼向後取html

prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//從結束代碼向前取html

window.document.body.innerHTML=prnhtml;

window.print();

window.document.body.innerHTML=bdhtml;

} else {

window.print();

}

}

/script

pXXXXX/p

!–startprint1–要打印的內容!–endprint1–

再加個打印按紐 onclick=preview(1)

2、調用windows底層打印,報安全警告,不建議使用(不支持局部打印)

[html] view plain copy

HTML

HEAD

TITLEjavascript打印-打印頁面設置-打印預覽代碼/TITLE

META http-equiv=Content-Type content=”text/html; charset=gb2312″ /

SCRIPT language=javascript

function printsetup(){

// 打印頁面設置

wb.execwb(8,1);

}

function printpreview(){

// 打印頁面預覽

wb.execwb(7,1);

}

function printit()

{

if (confirm(‘確定打印嗎?’)) {

wb.execwb(6,6);

}

}

/SCRIPT

/HEAD

BODY

DIV align=center

OBJECT id=wb height=0 width=0

classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 name=wb/OBJECT

INPUT onclick=javascript:printit() type=button value=打印 name=button_print /

INPUT onclick=javascript:printsetup(); type=button value=打印頁面設置 name=button_setup /

INPUT onclick=javascript:printpreview(); type=button value=打印預覽 name=button_show /

一按開始的減肥了卡時間段

/DIV

/BODY

/HTML

3、jQuery實現(支持局部打印)

[html] view plain copy

script type=”text/javascript” src=”jquery-1.4.2.min.js”/script

script type=”text/javascript” src=”jquery.PrintArea.js”/script

script

$(document).ready(function(){

$(“input#biuuu_button”).click(function(){

$(“div#myPrintArea”).printArea();

});

});

/script

input id=”biuuu_button” type=”button” value=”打印”/input

div id=”myPrintArea”…..文本打印部分…../div

js如何實現頁面打印

HTMLHEADTITLEjavascript打印-打印頁面設置-打印預覽代碼/TITLE

META http-equiv=Content-Type content=”text/html; charset=gb2312″ /

SCRIPT language=javascript

function printsetup(){

// 打印頁面設置

wb.execwb(8,1);

}

function printpreview(){

// 打印頁面預覽

wb.execwb(7,1);

}

function printit()

{

if (confirm(‘確定打印嗎?’)) {

wb.execwb(6,6)

}

}

/SCRIPT

/HEAD

BODY

DIV align=center

OBJECT id=wb height=0 width=0

classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 name=wb/OBJECT

INPUT onclick=javascript:printit() type=button value=打印 name=button_print /

INPUT onclick=javascript:printsetup(); type=button value=打印頁面設置 name=button_setup /

INPUT onclick=javascript:printpreview(); type=button value=打印預覽 name=button_show /

/DIV

/BODY

/HTML

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/294124.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-26 13:15
下一篇 2024-12-26 13:15

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 如何解決web瀏覽器雙擊事件時差

    本文將從以下幾個方面對web瀏覽器雙擊事件時差進行詳細闡述,並提供解決方法。 一、雙擊事件延時設置 1、問題描述:在web瀏覽器中,雙擊事件默認會延時一定的時間才能觸發該事件,這個…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Java和Python哪個功能更好

    對於Java和Python這兩種編程語言,究竟哪一種更好?這個問題並沒有一個簡單的答案。下面我將從多個方面來對Java和Python進行比較,幫助讀者了解它們的優勢和劣勢,以便選擇…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • python爬取網頁並生成表格

    本文將從以下幾個方面詳細介紹如何使用Python爬取網頁數據並生成表格: 一、獲取網頁數據 獲取網頁數據的一般思路是通過HTTP請求獲取網頁內容,最常用的方式是使用Python庫r…

    編程 2025-04-28
  • 使用Python模擬手機瀏覽器的方法

    解答如何使用Python模擬手機瀏覽器,並且給出示例代碼。 一、安裝Selenium庫 使用Python模擬手機瀏覽器需要使用Selenium庫。 首先,使用pip命令進行安裝: …

    編程 2025-04-28
  • 網頁防篡改的重要性和市場佔有率

    網頁防篡改對於保護網站安全和用戶利益至關重要,而市場上針對網頁防篡改的產品和服務也呈現出不斷增長的趨勢。 一、市場佔有率 據不完全統計,目前全球各類網頁防篡改產品和服務的市場規模已…

    編程 2025-04-28
  • Python每次運行變量加一:實現計數器功能

    Python編程語言中,每次執行程序都需要定義變量,而在實際開發中常常需要對變量進行計數或者累加操作,這時就需要了解如何在Python中實現計數器功能。本文將從以下幾個方面詳細講解…

    編程 2025-04-28
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28

發表回復

登錄後才能評論