您好,登錄后才能下訂單哦!
如何進(jìn)行CRM WebClient UI的瀏覽器打印實(shí)現(xiàn),相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
WebClient UI上自帶了一個(gè)打印按鈕,按Ctrl + P后可以生成一個(gè)新的頁(yè)面供打印。
如下圖所示。可以看到這個(gè)頁(yè)面里所有的超鏈接都已經(jīng)被移除了。
這個(gè)頁(yè)面的生成邏輯如下。
1. 按住ctrl + p之后,會(huì)觸發(fā)WebClient UI框架的按鍵響應(yīng)函數(shù)thtmlbKeyDown。瀏覽器傳入的事件處理對(duì)象里ctrl屬性為true,keycode為80(按鍵p對(duì)應(yīng)的code),意思就是ctrl和p同時(shí)按下。
這個(gè)響應(yīng)函數(shù)thtmlbKeyDown被注冊(cè)到整個(gè)document對(duì)象上,因此您在頁(yè)面任何位置點(diǎn)擊ctrl+p都能得到響應(yīng)。
從右上角的調(diào)用棧能發(fā)現(xiàn)crmFrwPrint被調(diào)用。crmFrwPrint會(huì)打開(kāi)print.do這個(gè)控制器,位于BSP應(yīng)用bspwd_basics里。
2. 打開(kāi)print.do控制器的實(shí)現(xiàn)類(lèi)CL_BSPWD_BASICS_PRINT
這個(gè)控制器會(huì)打開(kāi)print.html頁(yè)面
3. 我們按了ctrl+p后生成的頁(yè)面的內(nèi)容就是在print.html里生成的。核心代碼在函數(shù)ppStartScripts里,被thtmlbRegisterOnLoad注冊(cè)到頁(yè)面的load事件里,意思是print.html加載時(shí)就執(zhí)行。
thtmlUtil.addEventHandler就是SAP自己封裝的事件注冊(cè)函數(shù),用于多瀏覽器的兼容支持。
最核心的兩個(gè)函數(shù):
生成一個(gè)height和width為100%的div,背景圖片設(shè)置成SAP預(yù)定義好的1x1.gif。
運(yùn)行時(shí)顯示如下:
通過(guò)window.opener拿到發(fā)生了ctrl+p按鍵的原始頁(yè)面,然后把其th-l-wcsubheadercontainer下面的所有元素的html直接復(fù)制到打印輸出頁(yè)面的header元素下面。
這樣就實(shí)現(xiàn)了把原始頁(yè)面的內(nèi)容搬到了打印輸出頁(yè)面。
然后得到打印頁(yè)面所有超鏈接標(biāo)簽,然后把這些標(biāo)簽的href和onclick都置為一個(gè)函數(shù)體為return false的函數(shù),這樣超鏈接就不再能點(diǎn)擊。
var nirvana = new Function ( "return false;" );
看完上述內(nèi)容,你們掌握如何進(jìn)行CRM WebClient UI的瀏覽器打印實(shí)現(xiàn)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。