回复内容:
合理猜测:给onclick赋值的内部操作时,remove掉原来的,add上新的。 路过不同浏览器不一定是这个结果
底层代码肯定不是JS
仅趴了机器上几年前最老的blink代码看了下
EventListenerMap 里靠的是 EventListenerVector
这玩意就是个 Vector
typedef Vector
这么搞的
onclick setting 时候是 vector->find 后没有对应 handle
再 append 进去的
再次 setting 时是 find 有
就先 remove 老的再 append
没见 Vector 有用到(定义过) replace 方法
所以(在这么实现的浏览器上)才有这种现象
最终还是轮子哥猜对了。 这个ff和chrome/safari行为是不一致的(edge未测试)。按照现在的规范(https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-attributes:event-handlers-12),blink/webkit的行为是错误的。
嗯,恭喜轮子猜对了一个错误的实现。 js就是猜的人多,而不去看源码或规范,所以有一堆误导大众的文章 订阅者模式,内部应该是通过一个列表来维护事件响应的,所以每次为OnClick赋值的时候会替换原来的事件委托。 你这是毛病得改,对未在需求文档中定义的行为不要妄加猜测,因为说不定哪天就改了呢。
这个可能是listener和onclick一个是列表,一个是属性,属性赋值自然覆盖。先执行属性,再执行监听器列表。
当然也可以有其它和实现,那表现就不一样了,你依赖这种调用顺序是错误的,我完全可以所有listener并发,符合需求,却让你的程序出bug,你这就是作死,不要学习那些上古遗留的糟粕 属性,setter方法,去掉旧的,加上新的……你懂了吧,我猜的 跟所谓的主线程队列里面加入子线程是不是一个道理(疑惑 轮子哥猜中了。就是队列,出了重新进,就从队尾到队头了

本文讨论了使用视口元标记来控制移动设备上的页面缩放,重点是宽度和初始尺度之类的设置,以获得最佳响应和性能。

本文解释了如何使用< audio>元素,包括用于格式选择的最佳实践(MP3,OGG Vorbis),文件优化和JavaScript控件用于播放。 它强调使用多个音频f

本文使用JavaScript详细介绍了创建Interactive HTML5游戏。 它涵盖了游戏设计,HTML结构,CSS样式,JavaScript逻辑(包括事件处理和动画)以及音频集成。 必需的JavaScript库(Phaser,Pi

本文解释了如何创建和验证HTML5表格。 它详细介绍了>元素,输入类型(文本,电子邮件,编号等)和属性(必需,模式,最小,最大)。 HTML5的优势比旧方法形成

本文讨论了使用GeOlocation API管理用户位置隐私和权限,并强调要求权限,确保数据安全性并遵守隐私法律的最佳实践。

本文讨论了使用HTML5页面可见性API来检测页面可见性,提高用户体验并优化资源使用情况。关键方面包括暂停媒体,减少CPU负载以及基于可见性变化管理分析。

本文介绍了如何使用HTML5拖放API来创建交互式用户界面,详细介绍了使元素可拖动的步骤,处理关键事件并通过自定义反馈来增强用户体验。它还讨论了一个常见的陷阱

本文解释了HTML5 Websockets API,用于实时双向客户服务器通信。 它详细详细介绍了客户端(JavaScript)和服务器端(Python/Flask)的实现,以应对可伸缩性,状态管理,一个挑战


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具