[油猴脚本开发指南]油猴的本质以及document的处理(四)
# I函数分析接下来我们执行到了I函数

这里太长就不截图了
s是document
i是固定值2
c是fileterEvent函数,具体作用不知道~

我们一步一步往下走
首先声明了一个m函数

然后执行

其中b是forEach函数
而T是一个数组
内包含

回调则是
e=>{
e.object === s && (l = !0)
}
这里说实话意义不明,但是我们大概知道了T包含了addeventlistener等函数
然后我们通过常量l保存了document,以及addEventListener函数以及removeEventListener函数

然后执行C函数

根据结果可知
将油猴的函数和原生函数分别堆到了数组内,代理在前,原生在后

然后声明了一个数组一个函数

重头来了,对document的removeEventListener进行了劫持

然后声明一个w函数

再对document的addEventListener进行劫持

这里是劫持后的函数的tostring进行劫持,让其返回native code,装作是原来的函数

那么我们的I函数就执行完了
# I函数总结
对addEventListener以及removeEventListener进行了复写
# 结语
太长,继续撒花
页:
[1]