SAP Cloud for Customer的UI实现里,有不少使用JavaScript在运行时动态创建div标签的例子。

如果想研究这些情形发生的上下文,我们可以使用ES6提供的标准Proxy对象,给浏览器原生的document.createElement方法注入一个proxy,里面设置一个断点。这样每当div标签页被动态创建时,我们注入的proxy将会取代标准的document.createElement被浏览器调用。从断点停下来的调用上下文,我们即可观测到更多信息。

const handler = { // Our hook to keep the trackapply: 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的原创文章,请关注公众号"汪子熙":

利用ES6里标准化的JavaScript proxy对象拦截SAP C4C页面的HTML div原生操作相关推荐

  1. Javascript Proxy对象 简介

    Javascript Proxy对象 简介 本文转载自:众成翻译 译者:eJayYoung 链接:http://www.zcfy.cc/article/4755 原文:https://blog.cam ...

  2. 关于在WinForm里用HttpWebRequest获得某个页面,并填写页面的textbox及点击button的方法...

    方法如下: step1:use HttpWebRequest class to request,and use HttpWebResponse get the response. if you rea ...

  3. 【ES6】Proxy对象

    [ES6]Proxy对象 一.Proxy的基本用法 二.Proxy示例的方法 1)get() 2)set() 3)apply() 查看更多ES6教学文章: 参考文献 引言:ES6规范里面新增了Prox ...

  4. ES6的Proxy对象

    Proxy在目标对象之前架设一层拦截,外部所有的访问都必须先通过这层拦截,因此提供了一种机制,可以对外部的访问进行过滤和修改. ES6原生提供了Proxy构造函数,用来生成Proxy实例.下面代码中p ...

  5. ES6中的reflect和proxy和一个on-change

    理解reflect 反射,在运行时获得程序或程序集每一个类型的成员和成员信息. JAVA里程序中一般的对象的类型都是在编译期就确定下来的,而Java反射机制可以动态地创建对象并调用其属性,这样的对象的 ...

  6. ES6新增语法与内置对象扩展

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.什么是ES6 ES的全称是ECMAScript,它是由ECMA国际标准化组织制定的一项 ...

  7. JavaScript系列-----对象基于哈希存储(Key,Value之Key篇) (1)

    1.Hash表的结构 首先,允许我们花一点时间来简单介绍hash表. 1.什么是hash表 hash表是一种二维结构,管理着一对对<Key,Value>这样的键值对,Hash表的结构如下图 ...

  8. javascript 本地对象和内置对象_JavaScript 的面向对象

    图片来源于 DigitalOcean 1. 什么是类 在说 JavaScript 的面向对象的实现方法之前,我们先来看面向对象编程的一个核心概念--类(class).类是对拥有同样属性(propert ...

  9. JavaScript 原型对象和原型链

    开篇 之前对js中的原型链和原型对象有所了解,每当别人问我什么是原型链和原型对象时,我总是用很官方(其实自己不懂)的解释去描述.有一句话说的好:如果你不能把一个很复杂的东西用最简单的话语描述出来,那就 ...

最新文章

  1. SAP MM 中级之事务代码MICN的相关逻辑
  2. 在Spring Boot项目中使用Spock框架
  3. JavaScript高级部分概念用法
  4. 动态规划(斜率优化):BZOJ 3675 [Apio2014]序列分割
  5. 卓金武——从数学建模到MATLAB
  6. 互联网晚报 | 1月29日 星期六 | 支付宝相互宝正式关停;大钲资本成瑞幸咖啡实控人;苹果创有史以来最高单季营收...
  7. c++ 基本知识汇总
  8. MapInfo中MIF文件和MID文件的格式
  9. 线性代数辅导讲义(第三章 向量)
  10. VueRouter安装使用教程
  11. GetType obsolete
  12. 【038】翼辉携手太空链:拥抱商业航天发展
  13. 【测试】工艺路线展开Function
  14. powerbi中的earlier函数
  15. 操作系统_进程管理_进程的控制与同步
  16. 7-1 重要的话说三遍
  17. s2023gc65数三角形
  18. 【CET4四级英语】【单词】英语四级高频词汇(6)
  19. 易搜题,你与学霸之间的距离只差了一个iSearch
  20. guava翻译系列之Collections

热门文章

  1. SpringBoot的基础
  2. 正则化、交叉验证、泛化能力
  3. Boost.Test 断言的介绍
  4. 玩转spring MVC(九)---Spring Data JPA
  5. 寓言故事中隐藏的10个成功秘诀
  6. 仿VS窗体效果+outlookbar效果
  7. Ruby on Rails:控制器纵览
  8. 一个比较完美的spacer div技巧
  9. 部门选择控件源代码公布
  10. sklearn自学指南(part38)--OPTICS