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預定義好的1×1.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;" );
    原文作者:JerryWangSAP
    原文地址: https://segmentfault.com/a/1190000014520442
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞