我正在创建一个 chrome 扩展程序,允许您在editable
元素中单击上下文菜单选项。单击上下文菜单选项会自动将一些文本放置在光标所在的位置。
我遇到的问题是放置文本的过程因放置文本的位置而异。例如,如果文本被放置在textarea
, (就像我现在输入的那样),则该过程与我需要将文本放入 YouTube 评论框(它自己的自定义 div)中的过程不同并且不支持我在编辑普通内容时使用的操作textarea
在我寻找一个对 APIeditable
类别中的所有元素都适用的灵活解决方案时chrome.contextMenus
,我想到了以下想法:
如果我将变量存储在系统剪贴板中document.execCommand('copy')
,然后将其粘贴到光标所在的任何位置,我应该能够做我想做的事document.execCommand('paste')
这里的缺点是用户会丢失他们曾经在剪贴板中拥有的任何东西。
我最初计划只是将原始内容粘贴到我自己的textarea
中,然后在完成剪贴板后将其恢复,但这种方法存在两个问题:
- 用户将失去他们最初拥有的任何格式
- 这仅适用于文本,不适用于图像。
有没有一种方法可以保存剪贴板的内容,以便我稍后将它们复制回剪贴板,而用户不会注意到对内容的任何修改?
如果我有任何明显的误解,请纠正我,因为我是 JS、DOM 和 HTML 的新手