Tim*_*urs 5 javascript google-chrome google-chrome-extension
我目前正在尝试从 Chrome 扩展程序触发可信的 textInput TextEvent。
\n\n在 Chrome \xe2\x89\xa4 52 中我可以执行以下操作:
\n\nconst textEvent = document.createEvent(\'TextEvent\')\ntextEvent.initTextEvent(\'textInput\',\n true,\n true,\n null,\n \'myString\');\ndocument.activeElement.dispatchEvent(textEvent)\nRun Code Online (Sandbox Code Playgroud)\n\n在 Chrome 53 中,我有以下解决方法:
\n\ndocument.execCommand(\'insertText\', false, \'myString\')\nRun Code Online (Sandbox Code Playgroud)\n\n但它根本不应该起作用(设计模式未启用,并且应该只适用于contenteditablediv)
正如预期的那样,在 Chrome 54 中我的解决方法不再有效...有人有想法吗?
\n\n\n我确认它不再适用于 Chrome 54。不过,我已经找到了解决办法。我现在使用剪贴板 API。更准确地说:
我创建一个临时文本区域并将其聚焦
我将剪贴板的当前内容粘贴到文本区域,然后将其保存到变量中
然后我将要写入的文本放入文本区域,选择它并复制
我将焦点放回到要写入的元素上,然后粘贴
然后,我重新选择文本区域,重新复制以将原始内容放回剪贴板中,最后将焦点放回我正在写入的元素中。
在我的例子中,选择范围还存在一些技巧,因为我需要以编程方式替换选择文本,不仅插入文本,而且我已经解释了所有主要步骤:)这是我发现的唯一可以在任何地方使用的解决方案ContentEditable div 和输入类似,无论是否有反应。祝你好运!
| 归档时间: |
|
| 查看次数: |
651 次 |
| 最近记录: |