execCommand中“粘贴为纯文本”的JavaScript技巧

根据execCommand下面介绍的示例,我有一个基本的编辑器。有三种方法可以在execCommand区域内粘贴文本:

  • Ctrl+V
  • 右键单击->粘贴
  • 右键单击->作为纯文本粘贴

我想只粘贴没有任何HTML标记的纯文本。如何强制前两个动作粘贴纯文本?

我想到的方法是为(Ctrl+ V)的keyup事件设置侦听器,并在粘贴之前剥离HTML标记。

  1. 这是最好的解决方案吗?
  2. 避免粘贴任何HTML标记是否安全?
  3. 如何将侦听器添加到右键单击->粘贴?

回答:

它将拦截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

回到顶部