element-ui 怎么配合shadow-dom使用?

t3irkdon  于 5个月前  发布在  其他
关注(0)|答案(7)|浏览(67)

目前在shadow-dom里element-ui的时间选择、弹窗类等组件会报错

xcitsw88

xcitsw881#

shadow-dom 中的页面使用 element-ui 中的 tooltip 和 popover 会有问题

busg9geu

busg9geu2#

很多组件都会有问题

jgovgodb

jgovgodb3#

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

gpnt7bae

gpnt7bae6#

开发重心在element-plus了,2.x不太可能加大的新需求。

nqwrtyyt

nqwrtyyt7#

嗨,最近在使用 qiankun shadow 时也遇到了同样的问题,下面是一些简单的排查以及建议:

  1. 事件监听

element/packages/popover/src/main.vue

Lines 202 to 205 in 655d89f

| | this.$el.contains(e.target) || |
| | reference.contains(e.target) || |
| | !popper || |
| | popper.contains(e.target)) return; |

在 Shadow DOM 的 event target 始终会指向 Shadow DOM 元素,也许这里可以尝试通过 event.composedPath() 兼容一下,或者对外提供钩子覆盖更正判断结果。

  1. 样式计算

element/src/utils/popper.js

Lines 1027 to 1031 in 655d89f

| | functiongetStyleComputedProperty(element,property){ |
| | // NOTE: 1 DOM access here |
| | varcss=root.getComputedStyle(element,null); |
| | returncss[property]; |
| | } |

getComputedStyle 在 Shadow DOM 元素同样存在问题,也许可以通过判断当前是否 Shadow 来提供默认值。

希望对大家有所帮助,如果有其他场景下的问题也可以补充,方便后续 pr.

相关问题