我有一个很棒的可编辑文本区域,带有wysihat和 contentEditable。我真的需要一种拦截粘贴事件的方法来阻止它们,或者在允许插入之前处理它们的 DOM。人们可以将整个网页粘贴到可编辑区域中,这有点疯狂。
这可能吗?
来吧未来,到我家门口。HTML5 大师,火!
我有一个很棒的可编辑文本区域,带有wysihat和 contentEditable。我真的需要一种拦截粘贴事件的方法来阻止它们,或者在允许插入之前处理它们的 DOM。人们可以将整个网页粘贴到可编辑区域中,这有点疯狂。
这可能吗?
来吧未来,到我家门口。HTML5 大师,火!
您无法访问将插入的内容。
您可以做的是添加一个事件侦听器,该侦听器在 Ctrl+V 上运行一些清理代码(超时,因此它会看到粘贴的文本)
onpaste事件工作正常,至少你可以拒绝用户插入行为
someElement.onpaste = function() {
// doSomething()
return false; // to prevent user insert
}
textInput 事件在粘贴文本之前触发,并且与 ctrl+v 和其他粘贴文本的方式(如上下文菜单等)兼容,它还有一个名为 .data 的属性,它应该/可能保存被粘贴的内容,但是我还没有在支持 textInput 事件的浏览器中看到这个填充。
但是,输入事件触发 /after/ 粘贴(当 dom 已经更改时),所以我猜这两者的一些耦合可能会在此期间起作用。
或者..你可以只使用粘贴事件;)