利用ES6標準化JavaScript proxy物件攔截SAP C4C頁面的HTML div原生操作
SAP Cloud for Customer的UI實現裡,有不少使用JavaScript在執行時動態建立div標籤的例子。
如果想研究這些情形發生的上下文,我們可以使用ES6提供的標準Proxy物件,給瀏覽器原生的document.createElement方法注入一個proxy,裡面設定一個斷點。這樣每當div標籤頁被動態建立時,我們注入的proxy將會取代標準的document.createElement被瀏覽器呼叫。從斷點停下來的呼叫上下文,我們即可觀測到更多資訊。
const handler = { // Our hook to keep the track apply: function (target, thisArg, args){
console.log("Jerry Intercepted a call tocreateElement with args: " + args);
debugger;
return target.apply(thisArg, args)
}}document.createElement= new Proxy(document.createElement, handler);
比如每次SAP Cloud for Customer UI出現busy indicator的動畫效果時,其實瀏覽器就是殘軀新建一個div標籤的方式實現的。
使用setTimeout實現busy indicator的動態效果。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2684599/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ES6 Proxy攔截器詳解
- Proxy代理資料攔截方法
- 雲端計算標準化以及互操作性方面的標準
- 利用攔截器加快取完成介面防刷操作快取
- 利用 proxy 監視物件的變化物件
- 使用 Javascript 原生的 Proxy 優化應用JavaScript優化
- SAP BASIS 標準操作手冊
- HTML <div>標籤HTML
- Mybatis-分頁攔截器MyBatis
- UIWebView/WKWebView對標籤攔截UIWebView
- JavaScript 獲取div在頁面中座標JavaScript
- 如何建立HTML Mashup並插入到SAP Cloud for Customer標準頁面裡HTMLCloud
- javascript實現網頁截圖操作介紹JavaScript網頁
- Asp.Netcore使用Filter來實現介面的全域性異常攔截,以及前置攔截和後置攔截ASP.NETNetCoreFilter
- javascript如何實現iframe父子頁面的相互操作JavaScript
- Android利用廣播攔截簡訊Android
- spring mvc攔截器,spring攔截器以及AOP切面的區別和原始碼SpringMVC原始碼
- html標準分辯率頁面測試HTML
- 如何將SAP C4C TI頁面的值傳遞到Embedded Component裡去
- SAP標準教程
- 利用Excel匯入資料到SAP C4CExcel
- 利用HOOK攔截封包原理 (轉自it人部落)Hook
- Mybatis 分頁:Pagehelper + 攔截器實現MyBatis
- 微信小程式之頁面攔截器微信小程式
- Web 終極攔截技巧(全是騷操作)Web
- VUE 未來代理操作:ES6 Proxy代理Vue
- 網站域名被QQ攔截提示:當前網頁非官方頁面攔截的解決辦法網站網頁
- 對於購物中心HTML前端頁面的最佳化HTML前端
- 利用HTML5的history.replacestate()修改當前頁面的URLHTML
- 攔截器,攔截器棧總結
- JavaScript ES6 Promiss物件JavaScript物件
- JavaScript物件導向修改標籤頁詳解JavaScript物件
- 兩種利用HTML原生能力標記腳註的方式對比HTML
- OkHttp 攔截器的一些騷操作HTTP
- JavaScript HTML DOM 物件JavaScriptHTML物件
- 標準模式與怪異模式對於渲染頁面的影響模式
- 關於 SAP Spartacus Angular HTTP Interceptor 的攔截順序AngularHTTP
- 使用原生 JavaScript 操作 DOMJavaScript