我有一个丰富的编辑器,我正在重新编写一个lit-element自定义元素。 我使用Firefox(最新)进行测试。我试图在自定义元素的shadowDom中获取内容可编辑元素的选择(在一个方法中)。
在Firefox调试器中)。) this.shadowRoot
看起来对shadowRoot元素是正确的,但是 this.shadowRoot.getSelection
没有定义,即使 DocumentOrShadowRoot说 shadowRoot.getSelection()
是正确的方式来获得影子DOM内的选择.任何人都可以shed light on something I'm missing?
非常感谢
我自己尝试在shadowdom中获取一个选择,目前我的理解是 "this.shadowRoot.getSelection() "可以正常工作(在Chrome和Firefox中测试),但只适用于 "open "模式下的shadowdom,因为 "this.shadowRoot "不能在 "closed "模式下被访问。因为在 "关闭 "模式下,"this.shadowRoot "无法被访问:"无法读取属性'getSelection'为null"。
当然你可以在初始化时自己存储一个对shadowRoot的引用,但是在JavaScript中很难保持这个引用的私密性。