问答

js 里click()函数可以安全模拟用户点击吗?

作者:admin 2021-05-09 我要评论

和用户实际点击相比,除了操作速度外 ,其他的副作用都一样吗? 下面这两个click, 能否代表用户 足够快速点击这两个dom? ### 我认为是 不一样 的。 你触发不了 ...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

和用户实际点击相比,除了操作速度外 ,其他的副作用都一样吗?
下面这两个click, 能否代表用户 足够快速点击这两个dom?
image.png

###

我认为是不一样的。

你触发不了 视频播放、剪贴板、文件上传 等等。然后 event 也会有细微的变化,你可以对比一下。

当然如果你说支持执行一个计算,调用ajax。那么是没影响的。em。。。好像调用会变成同步?而不是UI的异步事件。

###

代码 dispatch 的事件和用户触发的事件是一样的,只有一点不一样,event.isTrusted 为 false 。所以说event listener 是可以鉴别出来这个事件是否真的是用户触发的,比如浏览器的默认行为有些是只响应 isTrusted 为 true 的事件的。

其实 DOM 里的事件你都可以用代码构建然后dispatch 给你的 target,从前是用 document.createEvent 现在是推荐直接 new ,然后初始化一下各种属性,然后调用 dispatchEvent 。click() 等价于 dispatch 一个 click event,冒泡什么的都在,只要你的 listener 不有意监测你是否是代码触发的事件,一切就会照常。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • grom设置json默认值

    grom设置json默认值

  • Vue路由报错,看着没问题

    Vue路由报错,看着没问题

  • 思否邮箱登录为什么区分大小写了呢?

    思否邮箱登录为什么区分大小写了呢?

  • 有没有能够直接上传markdown文件作为博

    有没有能够直接上传markdown文件作为博

腾讯云代理商
海外云服务器