如何捕获contentEditable的粘贴事件?

7
我正在使用wysihat和contentEditable创建一个很棒的可编辑文本区域。我真的需要一种拦截粘贴事件的方法,以停止它们或在允许插入之前处理它们的DOM。人们可以将整个网页粘贴到可编辑区域中,这有点疯狂。

这是否可能?

未来,请来到我的门前。HTML5大师,发挥你们的技能!

3个回答

3

您无法访问将要插入的内容。

您可以添加一个事件监听器,在Ctrl+V时运行一些清理代码(使用超时,以便它看到已粘贴的文本)


2

onpaste事件很好用,至少可以拒绝用户插入行为。

someElement.onpaste = function() {
   // doSomething()
   return false; // to prevent user insert
}

1

textInput事件在文本粘贴之前触发,兼容ctrl+v和其他粘贴文本的方式(如上下文菜单等),它还有一个名为.data的属性,应该/可能保存正在粘贴的内容,但我尚未看到支持textInput事件的浏览器中填充此属性。

然而,input事件在粘贴后(当dom已经更改)触发,因此我想这两者的某种耦合可以在过渡期间起作用。

或者...您可以只使用paste事件;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接