V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
honkew
V2EX  ›  JavaScript

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

  •  
  •   honkew · 2023-01-30 09:40:28 +08:00 · 1580 次点击
    这是一个创建于 682 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个 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

    现在懵逼状态

    6 条回复    2023-01-30 14:26:12 +08:00
    honkew
        1
    honkew  
    OP
       2023-01-30 09:42:32 +08:00
    有空的大佬可以研究下.
    mynameislihua
        2
    mynameislihua  
       2023-01-30 10:04:01 +08:00
    没空
    corcre
        3
    corcre  
       2023-01-30 10:09:09 +08:00
    Chrome Version 109.0.5414.120 (Official Build) (64-bit)正常, 建议检查插件
    wangtian2020
        4
    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
        5
    honkew  
    OP
       2023-01-30 11:25:17 +08:00
    @wangtian2020 谢谢回答,我在追一下
    honkew
        6
    honkew  
    OP
       2023-01-30 14:26:12 +08:00
    找到原因了
    是 aria-owns 属性的问题
    elmentui el-cascader 也有此问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2328 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:49 · PVG 23:49 · LAX 07:49 · JFK 10:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.