我正在尝试制作一些粘贴事件监听器,以“清除”输入。因为IE11没有execCommand(“ insertText”,..),所以我使用execCommand(“ paste”,..)(对于没有insertText的浏览器)。但是以某种方式,在execCommand(“ paste”,..)中再次触发事件粘贴。
现在,问题是,如何防止execCommand(“ paste”,...)触发粘贴事件?
这是我当前的代码:
function pasteHandler(e) {
// cancel paste
e.preventDefault();
// get text representation of clipboard
clipboard = e.clipboardData || window.clipboardData;
var text;
if (e.clipboardData){
text = e.clipboardData.getData("text/plain");
}else if (window.clipboardData){
text = window.clipboardData.getData("text");
}
text = text.trim(); //example cleaning
console.log(text);
// insert text manually
if (document.queryCommandSupported('insertText')) {
document.execCommand('insertText', false, text);
} else {
document.execCommand('paste', false, text);
}
}
obj.addEventListener("paste", pasteHandler, false);
编辑:
我添加监听器的元素是:
<div contenteditable="true"> </div>