九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
extjs 組件打印 問題
描述一下大概功能需求:從Ext的GridPanel中選擇一條記錄,將這條記錄的詳細信息呈現(xiàn)在Ext的Window當(dāng)中,將Window中呈現(xiàn)的數(shù)據(jù)按其格式用打印機打印出來。

要處理這個有兩種方式:
1.在前臺用JavaScript調(diào)用打印機打印
2.在后臺服務(wù)器端處理
由于需求的原因,這里只允許使用第一種方式。想來應(yīng)該也不難,JavaScript調(diào)用一下window.print()(注意:不是Ext.Window),結(jié)果失敗了。window.print()打印出來的是整個當(dāng)前瀏覽器中所呈現(xiàn)的內(nèi)容,而不是我所要的Ext.Window中的內(nèi)容。
(突然在想為什么不讓每個dom都有print()方法去打印自身中的內(nèi)容呢?郁悶…)
既然只能打印瀏覽器window中的,那我把Ext.Window中要打印的內(nèi)容賦給瀏覽器的window,不就可以打印了么。
于是乎開始coding…

var win = new Ext.Window({   title: '明細',  width: 600,  height: 400,  buttons: [{    text: '打印',    handler: function(){      //把當(dāng)前的頁面存起來      var c = window.document.body.innerHTML;      //把win中要打印的內(nèi)容賦給當(dāng)前瀏覽器      window.document.body.innerHTML = win.body.dom.innerHTML;      //開始打印      window.print();      //再轉(zhuǎn)回去      window.document.body.innerHTML = c;    }  }]});

先不說打印是否成功,由于整個項目是Ext做的,這樣一來回折騰,整個頁面直接變成只能看不能操作了,暈倒~再想辦法吧。
coding…

var win = window.open('','printer', '');win.document.body.innerHTML = win.body.dom.innerHTML;win.print();

沒問題,可是彈出來了一個窗口,我想能不能把它隱藏起來呢,可是突然又想到彈窗會被某些瀏覽器攔截,這個方法也放棄。
還有什么辦法呢?再次突然想起frame與frame之間如何用JavaScript傳值,一個frame中含有一個window對象,那么…
接著coding…

var win = new Ext.Window({   title: '明細',  width: 600,  height: 400,  html: '<iframe />',  buttons: [{    text: '打印',    handler: function(){      var c = win.body.first().dom.innerHTML;      var printer = win.body.last().dom.contentWindow;      printer.document.body.innerHTML = c;      printer.print();    }  }]});

在Ext.Window中用html配置選項創(chuàng)建一個空iframe標(biāo)簽,在Firebug下可以看到html所配置的內(nèi)容會出現(xiàn)在win.body中且位于最后,win.body是Ext.Element對象,通過它可以取到要打印的內(nèi)容c和打印機printer(frame中的window),然后賦值,接著打印。
想的好好的,打印出來的竟然和第一個方式一樣,⊙﹏⊙b汗
問題出在哪了?難道因為iframe沒有獲得焦點?printer.print()之前加上printer.focus(),再打印一張出來,搞定!同理也可以打印Ext.Panel等。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
window.print打印指定div實例代碼
window.print()實現(xiàn)分頁打印
事件冒泡與事件捕獲及事件委托
一周一話題之四(JavaScript、Dom、jQuery全面復(fù)習(xí)總結(jié)<Dom篇>)
詳解JavaScript DOM中的Node節(jié)點
Javascript 在瀏覽器環(huán)境中 (四) DOM節(jié)點的創(chuàng)建,修改與刪除
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服