我正在为应用程序使用Vue&Bootstrap,根据我的官方Vue文档(https://cli.vuejs.org/guide/build-targets.html#web-component)生成Web组件。在大多数情况下,Bootstrap和我的业务逻辑在Web组件的#shadow-root
内都能正常工作,就像在轻型DOM中一样。
但是,Bootstrap工具提示(基于Popper.js https://popper.js.org/)根本不在Shadow DOM中起作用。我还尝试过在Shadow DOM封装的代码中直接使用Popper.js和Tippy.js(https://atomiks.github.io/tippyjs/)调用工具提示,完全避开了Bootstrap,但仍然无法使它们正常工作。
查看示例:https://jsfiddle.net/mfep6rg9/
[我可以猜测为什么-第三方工具提示库很可能找不到目标DOM元素,因为它在Shadow DOM中。
那里是否存在第三方解决方案来解决Shadow DOM / Web组件封装问题?
您的猜测是正确的。使用document.
的3party解决方案未查询shadowDOM。
而且可能没有第三方解决方案,因为解决方案都需要
WebComponents,将鼠标的位置传达给外界。
主机查询shadowDOM(以及嵌套的shadowDOM和嵌套的shadowDOM)
与(甚至更多受限制的)IFRAME并没有太大区别>>