推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
honkew

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

  •  
  •   honkew · Jan 30, 2023 · 2486 views
    This topic created in 1206 days ago, the information mentioned may be changed or developed.

    这个 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 replies    2023-01-30 14:26:12 +08:00
    honkew
        1
    honkew  
    OP
       Jan 30, 2023
    有空的大佬可以研究下.
    mynameislihua
        2
    mynameislihua  
       Jan 30, 2023
    没空
    corcre
        3
    corcre  
       Jan 30, 2023
    Chrome Version 109.0.5414.120 (Official Build) (64-bit)正常, 建议检查插件
    wangtian2020
        4
    wangtian2020  
       Jan 30, 2023
    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
       Jan 30, 2023
    @wangtian2020 谢谢回答,我在追一下
    honkew
        6
    honkew  
    OP
       Jan 30, 2023
    找到原因了
    是 aria-owns 属性的问题
    elmentui el-cascader 也有此问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1561 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 16:43 · PVG 00:43 · LAX 09:43 · JFK 12:43
    ♥ Do have faith in what you're doing.