欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js實(shí)現(xiàn)瀏覽器打印功能的示例代碼

 更新時(shí)間:2020年07月15日 09:21:47   作者:小羽羽  
這篇文章主要介紹了js如何實(shí)現(xiàn)瀏覽器打印功能,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

最近接觸到一個(gè)新需求,實(shí)現(xiàn)打印機(jī)打印小票的功能。打的一桌子小票(慚愧),不過也基本滿足了業(yè)務(wù)上的需求,現(xiàn)在分享一下如何實(shí)現(xiàn)(好記性不如爛筆頭)

先上代碼

// 布局代碼
<div id="print">
    <div id="print_content"></div>
</div>
//js 部分代碼var f = document.getElementById('printf');
   if (f) {
    document.getElementById("print_content").removeChild(f);
   }
   var printhtml = `
   <div style="font-size:12px;margin-left: -6px;">
    <p style="margin-left:40px;">${this.ticket.title}</p>
    <p>--------------------------------------</p>
    <p>提貨點(diǎn):${this.ticket.pickUpAddress}</p>
    <p>商品名稱:${this.ticket.commodityName}</p>
    <p>下單時(shí)間:${this.ticket.paymentTime}</p>
    <p>提貨人:${this.ticket.receiver}</p>
    <p>聯(lián)系電話:${this.ticket.receiverPhone}</p>
    <p>提貨碼:${this.ticket.pickUpCode}</p>
    <p>提貨時(shí)間:${this.ticket.submissionTime}</p>
    <p style="color:#FFFFFF">.</p>
   </div>`
   if (!!window.ActiveXObject || "ActiveXObject" in window) { // 針對(duì)IE進(jìn)行適配
    var HKEY_Root, HKEY_Path, HKEY_Key;
    HKEY_Root = "HKEY_CURRENT_USER";
    HKEY_Path = "\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
    //設(shè)置網(wǎng)頁打印的頁眉頁腳為空
    function PageSetup_Null() {
     var Wsh = new ActiveXObject("WScript.Shell");
     HKEY_Key = "header";
     Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, "");
     HKEY_Key = "footer";
     Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, "");
     HKEY_Key = "margin_left"
     Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, "0"); //鍵值設(shè)定--左邊邊界
   
     HKEY_Key = "margin_top"
     Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, "0"); //鍵值設(shè)定--上邊邊界
   
     HKEY_Key = "margin_right"
     Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, "0"); //鍵值設(shè)定--右邊邊界
   
     HKEY_Key = "margin_bottom"
     Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, "0"); //鍵值設(shè)定--下邊邊界
    }
    printhtml = `
    <div style="font-size:12px;font-weight: 800;height:150px;width:300px">
     <p style="margin-left:35px">${this.ticket.title}</p>
     <p>------------------------------------------------</p>
     <p>提貨點(diǎn):${this.ticket.pickUpAddress}</p>
     <p>商品名稱:${this.ticket.commodityName}</p>
     <p>下單時(shí)間:${this.ticket.paymentTime}</p>
     <p>提貨人:${this.ticket.receiver}</p>
     <p>聯(lián)系電話:${this.ticket.receiverPhone}</p>
     <p>提貨碼:${this.ticket.pickUpCode}</p>
     <p>提貨時(shí)間:${this.ticket.submissionTime}</p>
     <p style="color:#FFFFFF;font-weight: 100;">.</p>
    </div>`
   }
   var iframe = document.createElement('iframe');
   iframe.id = 'printf';
   iframe.style.width = '0';
   iframe.style.height = '0';
   iframe.style.border = "none";
   document.getElementById("print_content").appendChild(iframe);
   setTimeout(() => {
    iframe.contentDocument.write(printhtml);
    iframe.contentDocument.close();
    iframe.contentWindow.focus();
    iframe.contentWindow.print();
   }, 100)

因?yàn)橐蟛荒馨汛蛴〉臄?shù)據(jù)顯示在頁面上,所以通過iframe的方式去實(shí)現(xiàn)。單純的截取字符串重新賦值body內(nèi)容能進(jìn)行打印卻把打印的內(nèi)容展現(xiàn)在頁面中了,所以不行。

打印針對(duì)IE的瀏覽器進(jìn)行了一定程度的調(diào)整,IE打印要做特定的處理,詳見上面判斷代碼。打印內(nèi)容通過模板字符串加內(nèi)聯(lián)樣式去實(shí)現(xiàn)。滿足了基本需求。

是否應(yīng)該也通過截取頁面字符串的方式去做可能比較浪費(fèi)性能些,為什么這么說?因?yàn)闃邮皆诖蛴〉男∑鄙嫌幸欢ǔ潭鹊钠睿蘖藮|墻破了西墻,只能采取相對(duì)的方式取舍。如果這種寫法不滿足,可以采取截取字符串寫class嘗試。

以上就是js實(shí)現(xiàn)瀏覽器打印功能的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于js 瀏覽器打印的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JavaScript中Number對(duì)象的toFixed() 方法詳解

    JavaScript中Number對(duì)象的toFixed() 方法詳解

    下面小編就為大家?guī)硪黄狫avaScript中Number對(duì)象的toFixed() 方法詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09
  • 利用JS將圖標(biāo)字體渲染為圖片的方法詳解

    利用JS將圖標(biāo)字體渲染為圖片的方法詳解

    在軟件開發(fā)中肯定要用到圖標(biāo),比如下圖的?Groove?音樂中就用到了許多圖標(biāo)。一種獲取這些圖標(biāo)的方法是把?Groove?音樂截個(gè)圖,然后熟練地開啟?Photoshop,開始摳圖。這種方式很遜,效率也很低。本文將利用JS將圖標(biāo)字體渲染為圖片,需要的可以參考一下
    2022-05-05
  • JavaScript轉(zhuǎn)換農(nóng)歷類實(shí)現(xiàn)及調(diào)用方法

    JavaScript轉(zhuǎn)換農(nóng)歷類實(shí)現(xiàn)及調(diào)用方法

    農(nóng)歷是日常生活中不可或缺的一部分,它與人類的生活息息相關(guān),從某種程度上說,它一直伴隨著我們,今天的任務(wù)是JavaScript轉(zhuǎn)換農(nóng)歷類的實(shí)現(xiàn),感興趣的你可以千萬不要錯(cuò)過,希望本文對(duì)你有所幫助
    2013-01-01
  • 小程序?qū)崿F(xiàn)頁面多級(jí)來回切換的示例代碼

    小程序?qū)崿F(xiàn)頁面多級(jí)來回切換的示例代碼

    這篇文章主要為大家詳細(xì)介紹了小程序如何頁面多級(jí)來回切換支持滑動(dòng)和點(diǎn)擊操作,文中的實(shí)現(xiàn)步驟講解詳細(xì),快跟隨小編一起動(dòng)手嘗試一下吧
    2022-07-07
  • 小程序?qū)崿F(xiàn)留言板

    小程序?qū)崿F(xiàn)留言板

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)留言板,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • javascript hashtable實(shí)現(xiàn)代碼

    javascript hashtable實(shí)現(xiàn)代碼

    javascript中沒有像c#,java那樣的哈希表(hashtable), 然而,javascript中的Array也只有一些類似于'哈希表'的非常簡單功能。
    2009-10-10
  • JS數(shù)組方法slice()用法實(shí)例分析

    JS數(shù)組方法slice()用法實(shí)例分析

    這篇文章主要介紹了JS數(shù)組方法slice()用法,結(jié)合實(shí)例形式分析了JavaScript數(shù)組slice()方法具體功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • 利用微信小程序制作屬于自己的Icon圖標(biāo)

    利用微信小程序制作屬于自己的Icon圖標(biāo)

    項(xiàng)目中常常需要使用到字體圖標(biāo),微信小程序中使用字體圖標(biāo)與在平常的web前端中類似但是又有區(qū)別,下面這篇文章主要給大家介紹了關(guān)于利用微信小程序制作屬于自己的Icon圖標(biāo)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • JavaScript高級(jí)程序設(shè)計(jì) 閱讀筆記(二十一) JavaScript中的XML

    JavaScript高級(jí)程序設(shè)計(jì) 閱讀筆記(二十一) JavaScript中的XML

    雖然XML和DOM已經(jīng)變成Web開發(fā)的重要組成部分,但目前僅IE跟Mozilla支持客戶端的XML處理
    2012-09-09
  • 基于JavaScript實(shí)現(xiàn)交互式博客

    基于JavaScript實(shí)現(xiàn)交互式博客

    在Web開發(fā)中,JavaScript(JS)是一種至關(guān)重要的編程語言,它使網(wǎng)頁具有交互性,本文主要介紹了如何使用JavaScript實(shí)現(xiàn)一個(gè)交互式博客,需要的可以了解下
    2024-01-01

最新評(píng)論