Chrome扩展:用剪贴板数据替换文本区域中的选定文本
Chrome Extension: Replace selected text in textarea with clipboard data
我很难将文本插入HTML文本区域,或者使用Chrome扩展(使用上下文菜单)从剪贴板中获取数据。
我目前在manifest.json文件中拥有以下权限:
"permissions": [
"contextMenus",
"clipboardRead",
"clipboardWrite"],
我的javascript技能仍然很初级,但尽管花了很长时间在SO上,我似乎无法克服document.execCode("粘贴")或在文本框中插入文本所需的特定语法的安全问题。
从程序上讲,这就是我想象的功能:
- 在当前文本区域中获取所选字符串,并将其复制到变量"orig_str"
- 如果是字符串,则获取当前剪贴板并将其存储在变量"clip_str"中。如果不是,请将变量设置为无
- 用覆盖当前文本区域中的原始选定字符串"orig_str+clip_str"
因此,如果文本区域包含:
I eat peas
剪贴板包含:
and cook
并且用户选择了"吃",然后该功能被激活,文本区域中的字符串将变为:
I eat and cook peas
如果有任何正确的帮助,我们将不胜感激,最好使用直接的JS而不是JQuery。
我不知道Chrome扩展是如何访问剪贴板的,所以我想clipboard
变量中有剪贴板字符串。然后您可以通过window.getSelection
功能在浏览器中读取选定的文本:
var selection = new window.getSelection,
selectedText = selection.anchorNode.data,
textarea = window.document.querySelector('textarea');
休息很容易,只需插入两个字符串:
textarea.value = textarea.value.replace(selectedText, clipboard);
我在这里的扩展中使用了这样的东西:https://github.com/horejsek/specialCharacters.我希望这能有所帮助。
相关文章:
- onkeyup无法动态创建多个文本区域
- 具有所有样式的文本正在复制到可编辑文本区域
- 在文本区域POST后解码JSON
- 在文本区域中使用jQuery.text()保持换行符
- ng在下拉列表和文本区域提交
- 将文本插入光标所在的文本区域
- 离开页面导航后保留文本区域内容
- Javascript-在文本区域中断,但不在段落中中断
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 测试文本区域中的特定文本格式
- 文本编辑后,append函数不适用于文本区域
- 如何在ReactJs中链接下拉列表和文本区域
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- 使用JSON文件中的变量(字符串)填充文本区域
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 如何为动态创建的文本区域中输入的值更新ng模型
- 延迟高亮显示文本区域中的文本
- 将字母添加到文本区域的末尾
- TinyMCE在新添加的文本区域