溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行CRM WebClient UI的瀏覽器打印實現

發布時間:2021-12-18 16:43:47 來源:億速云 閱讀:180 作者:柒染 欄目:互聯網科技

如何進行CRM WebClient UI的瀏覽器打印實現,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

WebClient UI上自帶了一個打印按鈕,按Ctrl + P后可以生成一個新的頁面供打印。

如何進行CRM WebClient UI的瀏覽器打印實現

如下圖所示??梢钥吹竭@個頁面里所有的超鏈接都已經被移除了。

如何進行CRM WebClient UI的瀏覽器打印實現

這個頁面的生成邏輯如下。

1. 按住ctrl + p之后,會觸發WebClient UI框架的按鍵響應函數thtmlbKeyDown。瀏覽器傳入的事件處理對象里ctrl屬性為true,keycode為80(按鍵p對應的code),意思就是ctrl和p同時按下。

如何進行CRM WebClient UI的瀏覽器打印實現

這個響應函數thtmlbKeyDown被注冊到整個document對象上,因此您在頁面任何位置點擊ctrl+p都能得到響應。

如何進行CRM WebClient UI的瀏覽器打印實現

從右上角的調用棧能發現crmFrwPrint被調用。crmFrwPrint會打開print.do這個控制器,位于BSP應用bspwd_basics里。

如何進行CRM WebClient UI的瀏覽器打印實現

2. 打開print.do控制器的實現類CL_BSPWD_BASICS_PRINT

如何進行CRM WebClient UI的瀏覽器打印實現

這個控制器會打開print.html頁面

如何進行CRM WebClient UI的瀏覽器打印實現

3. 我們按了ctrl+p后生成的頁面的內容就是在print.html里生成的。核心代碼在函數ppStartScripts里,被thtmlbRegisterOnLoad注冊到頁面的load事件里,意思是print.html加載時就執行。

如何進行CRM WebClient UI的瀏覽器打印實現

如何進行CRM WebClient UI的瀏覽器打印實現

thtmlUtil.addEventHandler就是SAP自己封裝的事件注冊函數,用于多瀏覽器的兼容支持。

最核心的兩個函數:

CreateShield

生成一個height和width為100%的div,背景圖片設置成SAP預定義好的1x1.gif。

如何進行CRM WebClient UI的瀏覽器打印實現

運行時顯示如下:

如何進行CRM WebClient UI的瀏覽器打印實現

loadPage

通過window.opener拿到發生了ctrl+p按鍵的原始頁面,然后把其th-l-wcsubheadercontainer下面的所有元素的html直接復制到打印輸出頁面的header元素下面。

這樣就實現了把原始頁面的內容搬到了打印輸出頁面。

如何進行CRM WebClient UI的瀏覽器打印實現

然后得到打印頁面所有超鏈接標簽,然后把這些標簽的href和onclick都置為一個函數體為return false的函數,這樣超鏈接就不再能點擊。

如何進行CRM WebClient UI的瀏覽器打印實現

 var nirvana = new Function ( "return false;" );

看完上述內容,你們掌握如何進行CRM WebClient UI的瀏覽器打印實現的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女