摘要:按住之后,會觸發框架的按鍵響應函數。瀏覽器傳入的事件處理對象里屬性為,為按鍵對應的,意思就是和同時按下。這個響應函數被注冊到整個對象上,因此您在頁面任何位置點擊都能得到響應。就是自己封裝的事件注冊函數,用于多瀏覽器的兼容支持。
WebClient UI上自帶了一個打印按鈕,按Ctrl + P后可以生成一個新的頁面供打印。
如下圖所示。可以看到這個頁面里所有的超鏈接都已經被移除了。
這個頁面的生成邏輯如下。
1. 按住ctrl + p之后,會觸發WebClient UI框架的按鍵響應函數thtmlbKeyDown。瀏覽器傳入的事件處理對象里ctrl屬性為true,keycode為80(按鍵p對應的code),意思就是ctrl和p同時按下。
這個響應函數thtmlbKeyDown被注冊到整個document對象上,因此您在頁面任何位置點擊ctrl+p都能得到響應。
從右上角的調用棧能發現crmFrwPrint被調用。crmFrwPrint會打開print.do這個控制器,位于BSP應用bspwd_basics里。
2. 打開print.do控制器的實現類CL_BSPWD_BASICS_PRINT
這個控制器會打開print.html頁面
3. 我們按了ctrl+p后生成的頁面的內容就是在print.html里生成的。核心代碼在函數ppStartScripts里,被thtmlbRegisterOnLoad注冊到頁面的load事件里,意思是print.html加載時就執行。
thtmlUtil.addEventHandler就是SAP自己封裝的事件注冊函數,用于多瀏覽器的兼容支持。
最核心的兩個函數:
CreateShield生成一個height和width為100%的div,背景圖片設置成SAP預定義好的1x1.gif。
運行時顯示如下:
loadPage通過window.opener拿到發生了ctrl+p按鍵的原始頁面,然后把其th-l-wcsubheadercontainer下面的所有元素的html直接復制到打印輸出頁面的header元素下面。
這樣就實現了把原始頁面的內容搬到了打印輸出頁面。
然后得到打印頁面所有超鏈接標簽,然后把這些標簽的href和onclick都置為一個函數體為return false的函數,這樣超鏈接就不再能點擊。
var?nirvana?=?new?Function?(?"return?false;"?);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94474.html
摘要:隨便找一個在里會被頻繁調用到的函數,在函數里創建一個隱式增強,打印當前的會話。不關閉瀏覽器,在瀏覽器里不斷做操作,可以觀察到不管做任何操作,每次斷點出發后,打印出來的會話都相同。每次觸發打印出的會話都相同 隨便找一個在CRM WebClient UI里會被頻繁調用到的函數,在函數里創建一個隱式增強,打印當前的會話ID。 showImg(https://segmentfault.com/...
摘要:隨便找一個在里會被頻繁調用到的函數,在函數里創建一個隱式增強,打印當前的會話。不關閉瀏覽器,在瀏覽器里不斷做操作,可以觀察到不管做任何操作,每次斷點出發后,打印出來的會話都相同。每次觸發打印出的會話都相同 隨便找一個在CRM WebClient UI里會被頻繁調用到的函數,在函數里創建一個隱式增強,打印當前的會話ID。 showImg(https://segmentfault.com/...
摘要:隨便找一個在里會被頻繁調用到的函數,在函數里創建一個隱式增強,打印當前的會話。不關閉瀏覽器,在瀏覽器里不斷做操作,可以觀察到不管做任何操作,每次斷點出發后,打印出來的會話都相同。每次觸發打印出的會話都相同 隨便找一個在CRM WebClient UI里會被頻繁調用到的函數,在函數里創建一個隱式增強,打印當前的會話ID。 showImg(https://segmentfault.com/...
閱讀 2128·2021-09-27 14:04
閱讀 1873·2019-08-30 15:55
閱讀 1698·2019-08-30 13:13
閱讀 1065·2019-08-30 13:07
閱讀 2742·2019-08-29 15:20
閱讀 3240·2019-08-29 12:42
閱讀 3324·2019-08-28 17:58
閱讀 3593·2019-08-28 17:56