execCommand中“粘贴为纯文本”的JavaScript技巧
根据execCommand
下面介绍的示例,我有一个基本的编辑器。有三种方法可以在execCommand
区域内粘贴文本:
Ctrl
+V
- 右键单击->粘贴
- 右键单击->作为纯文本粘贴
我想只粘贴没有任何HTML标记的纯文本。如何强制前两个动作粘贴纯文本?
我想到的方法是为(Ctrl
+ V
)的keyup事件设置侦听器,并在粘贴之前剥离HTML标记。
- 这是最好的解决方案吗?
- 避免粘贴任何HTML标记是否安全?
- 如何将侦听器添加到右键单击->粘贴?
回答:
它将拦截paste
事件,取消paste
,并手动插入剪贴板的文本表示形式:
这应该是最可靠的:
- 它捕获各种粘贴(
Ctrl
+V
,上下文菜单等) - 它使您可以直接以文本形式获取剪贴板数据,因此您不必进行难看的修改即可替换HTML。
不过,我不确定是否支持跨浏览器。
editor.addEventListener("paste", function(e) { // cancel paste
e.preventDefault();
// get text representation of clipboard
var text = (e.originalEvent || e).clipboardData.getData('text/plain');
// insert text manually
document.execCommand("insertHTML", false, text);
});
以上是 execCommand中“粘贴为纯文本”的JavaScript技巧 的全部内容, 来源链接: utcz.com/qa/426351.html