日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

js打印window.print()图片打印

發(fā)布時(shí)間:2024/3/13 windows 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js打印window.print()图片打印 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 這里用的是A4紙,設(shè)置打印表格屬性(width:100%,height:980px)

2.由于打印可能存在多頁,所以heightt屬性必須嚴(yán)格控制。

3.由于自己是先隱藏不需要打印的DIV,然后顯示需要打印的DIV。當(dāng)需要打印的DIV存在圖片等資源導(dǎo)致加載較慢時(shí)。window.print又是異步的,所以存在圖片沒加載完就打印的情況。

解決方案:判斷圖片是否加載完成,加載完成在調(diào)用打印。(直接.onload不行,當(dāng)瀏覽器有 緩存時(shí)不會進(jìn)入方法)

var t_img; // 定時(shí)器
var isLoad = true; // 控制變量(判斷圖片是否 加載完成)

isImgLoad(function(){//判斷全部打印圖片加載完成
?? ??? ??? ?window.print();
?? ??? ???? // 加載完成
?? ??? ?});

//判斷圖片加載的函數(shù)
function isImgLoad(callback){
??? // 查找所有打印圖,迭代處理
??? $('.printImg').each(function(){
??????? // 找到為0就將isLoad設(shè)為false,并退出each
??????? if(this.height === 0){
??????????? isLoad = false;
??????????? return false;
??????? }
??? });
??? // 為true,沒有發(fā)現(xiàn)為0的。加載完畢
??? if(isLoad){
??????? clearTimeout(t_img); // 清除定時(shí)器
??????? // 回調(diào)函數(shù)
??????? callback();
??? // 為false,因?yàn)檎业搅藳]有加載完成的圖,將調(diào)用定時(shí)器遞歸
??? }else{
??????? isLoad = true;
??????? t_img = setTimeout(function(){
??????????? isImgLoad(callback); // 遞歸掃描
??????? },500); // 我這里設(shè)置的是500毫秒就掃描一次,可以自己調(diào)整
??? }
}

總結(jié)

以上是生活随笔為你收集整理的js打印window.print()图片打印的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。