IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

如何判断Event事件是否是用户主动执行的

沈二铺子 2013-05-28 22:14:04 累计浏览 3,803 次
本机暂存

有些网站主会模拟用户的行为触发click事件?

如果这个事件是jQuery模拟的,那么可以通过检测event.originalEvent是否存在来实现。

但是网站主完全可以通过createEvent()模拟一个Event,使它更像是真实的。

到这里我们发现,通过我们自己的Javascript已经不可能检测事件的真实性了,只有等浏览器出手。查了stackOverflow之后发现,浏览器还真的出手了。

http://stackoverflow.com/questions/6674669/in-jquery-how-can-i-tell-between-a-programatic-and-user-click

根据DOM Level 3 Events标准,在IE9+和firefox中,开始支持event.isTrusted属性,如果是用户发生的,就是true,否则就是false,并且这个属性不能被修改。参见:

http://www.w3.org/TR/DOM-Level-3-Events/

http://msdn.microsoft.com/en-us/library/ie/ff974948%28v=vs.85%29.aspx

http://help.dottoro.com/ljoljvsn.php

目前chrome也就是webkit内核还不支持此属性,但是相信不久以后,一定会支持的。

同分类推荐文章

  1. translateZ() (2026-06-25 21:18:56)
  2. translateY() (2026-06-25 21:17:56)
  3. translateX() (2026-06-25 21:16:01)

查看更多 前端 文章 →

建议继续学习

  1. JQuery实现Excel表格呈现 (累计阅读 48,352)
  2. 深入理解Javascript之执行上下文(Execution Context) (累计阅读 18,411)
  3. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (累计阅读 15,938)
  4. 图片动态局部毛玻璃模糊效果的实现 (累计阅读 14,850)
  5. 天朝第二代身份证号码的验证机制 (累计阅读 14,765)
  6. HTML 5 的data-* 自定义属性 (累计阅读 14,353)
  7. 分享一个JQUERY颜色选择插件 (累计阅读 14,225)
  8. 什么是全栈工程师? (累计阅读 14,042)
  9. 快速排序(Quicksort)的Javascript实现 (累计阅读 11,737)
  10. 7 天打造前端性能监控系统 (累计阅读 11,194)