![](/img/trans.png)
[英]How can I achieve a consistent focus outline color with shadow-dom web components?
[英]How to make focus(), tabindex and text highlighting work for web components with shadow DOM?
我正在制作包含影子 DOM 的可重用 Web 组件,目前我在焦点方面遇到了问题。
我有一个包含本机输入和一些文本的组件。
我正在尝试进行以下工作:
.focus()
将聚焦其内部原生输入tabindex
有效以下是我尝试过的一些方法: https://codepen.io/Spirielle/pen/RwBwJNY
最初我在组件影子 DOM 上使用delegatesFocus
。 它适用于焦点和选项卡,但会使组件内的文本无法选择。
然后我尝试删除delegatesFocus
,而是在组件上调用focus
时调用内部输入focus
方法,但现在当在组件上设置属性tabindex
时我必须按两次 tab。
有人给了我一个足够好的解决方案,所以我想我会分享:)
我们绑定onfocus
而不是focus
this.onfocus = opts => {
inner.focus(opts);
};
它并不完美,因为我们需要在文本中单击两次以突出显示它,但除此之外,所有 4 个提到的用例都有效。
我用这个解决方案更新了代码笔。 https://codepen.io/Spirielle/pen/RwBwJNY
如果这种方法可能会发生可怕的事情,请随意提出其他建议或发表评论。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.