一个 cascader 的 bug,百思不得其解

2023-01-30 09:40:28 +08:00
 honkew

这个 bug 会在 chrome 内核下部分版本可以触发

点击第一个下拉选框的时候会卡死,点击后面的就不会。只有第一个会卡死整个页面。导致页面崩溃。

demo 地址: https://yixiaco.github.io/lay_cascader/

测试在内核 69.0.3947.100 正常

在最新版本 chrome 版本 109.0.5414.120 (正式版本) ( 64 位)下可以触发此 bug

审查元素找到第一个

class="el-popper el-cascader__dropdown"

移除掉 display: none; ,也会触发卡死

在虚拟机中,chrome 内核 109.0.5414.120 没有复现卡死的 bug

现在懵逼状态

1539 次点击
所在节点    JavaScript
6 条回复
honkew
2023-01-30 09:42:32 +08:00
有空的大佬可以研究下.
mynameislihua
2023-01-30 10:04:01 +08:00
没空
corcre
2023-01-30 10:09:09 +08:00
Chrome Version 109.0.5414.120 (Official Build) (64-bit)正常, 建议检查插件
wangtian2020
2023-01-30 10:42:30 +08:00
edge 版本 109.0.5414.120 (正式版本) ( 64 位) 出现卡死

通过删除 dom 挨个测试,确认是
DOM [$('body > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div > div > div:nth-child(2) > div')]
上的来自 layui.min.js 的 click 事件
```
ƒ (e){return void 0===oe||e&&oe.event.triggered===e.type?void 0:oe.event.dispatch.apply(c.elem,arguments)}
```
导致的
因为是打包后的代码我追查不下去了

另外这 demo 代码质量不敢恭维,什么年代了还用 var ,function 也应该全都替换成箭头函数
honkew
2023-01-30 11:25:17 +08:00
@wangtian2020 谢谢回答,我在追一下
honkew
2023-01-30 14:26:12 +08:00
找到原因了
是 aria-owns 属性的问题
elmentui el-cascader 也有此问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/911511

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX