是否有一种灵活的方法来修改可编辑元素的内容? [英] Is there a flexible way to modify the contents of an editable element?

查看:25
本文介绍了是否有一种灵活的方法来修改可编辑元素的内容?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

主题:

我正在创建一个 Google Chrome 扩展程序,它通过内容脚本和事件页面与网页交互.

如果用户单击被 editable 的元素,我会显示上下文菜单选项rel="noreferrer">chrome.contextMenus API.

这些选项就像常用输入文本的快捷方式.当用户单击一个选项时,一些文本会放置在光标位置的元素内.如果用户突出显示了文本,则将其删除.

<小时>

问题:

并非所有可编辑元素都可以以相同方式进行修改.

如果元素是一个简单的textarea,则可以通过实现此解决方案来实现所需的结果:

但是,我不能假设我正在与普通的 textarea 进行交互.

可能的细微差别包括:

  • 文本区域隐藏在 Iframe 中,这使查找要与之交互的元素的过程变得复杂(document.activeElement 可能会返回 iframe,而不是实际包含文本的元素).