>我最近进入构建Wysiwyg编辑和弹出案的企业对浏览器API产生了一些令人着迷的见解。 产假为深度潜入技术挑战提供了绝佳的机会,而没有截止日期的压力。
>我目前的重点是为“代号鹅”做出贡献,这是一种带有锈后端和基于电子的聊天界面的开源AI代理。我提交了一个拉动请求,以集成Wysiwyg编辑器,选择了对现有软件包的自定义解决方案,以最大程度地减少捆绑包大小。 但是,维护人员建议使用弹出工具栏来解决空间问题。创建此浮动工具栏被证明具有意外的挑战。我的目标很简单:
>在文本选择时显示弹出工具栏。
标准html元素:
限制尽管具有跨浏览器的兼容性和易用性,但弹出式API仍有局限性:
它仅由于
属性限制而与按钮元素一起起作用。popovertarget
感谢Mark Techson,他通过Una Kravets的会议演讲向我介绍了Popover API:“少了,更多的力量:利用网络平台的力量。”
> Colby Fayock的博客文章“如何与选择API共享所选文本”,向我介绍了Selection API
>(可通过window.getSelection()
访问)。 此API返回aSelection
对象详细介绍所选文本。
getRangeAt(0)
getRangeAt(0)
Selection
对象中的方法提供了选择的开始和最终偏移:
startOffset
:选择的开始索引。endOffset
:选择的结尾索引(在最后一个选择的字符之后)。
= 7和startOffset
endOffset
>访问第一个选择。 诸如Firefox之类的浏览器允许多个选择(CTRL单击),但是单选浏览器中的0次数超过0会导致错误。
getRangeAt(0)
getBoundingClientRect()
>的访问,该>返回带有所选文本的顶部,右,底部,左侧坐标,宽度和高度的边界框。 这允许在选择上方精确的弹出位置,如下所示:getRangeAt(0)
但是,这种方法在文本区域内受到限制。
getBoundingClientRect()
镜像div
>文本包装在DIV和文本区域之间可能有所不同。
Selection API
为什么不使用NPM软件包?getComputedStyle()
>
>
结论以上是哪些文字区域弹出案教给我有关浏览器API的知识的详细内容。更多信息请关注PHP中文网其他相关文章!