Vic*_*tor 12 javascript clipboard html5 internet-explorer internet-explorer-11
我正在处理粘贴事件,contenteditable以便在粘贴之前清除所有HTML标记.所有工程罚款Firefox和Chrome.但是当我测试我的代码时IE11,event object传递的不是一个ClipboardEvent而是一个DragEvent.
我的代码有问题吗?如果我将侦听器添加为下面的代码,我应该获取剪贴板事件.我为什么要拖?
editable.addEventListener('paste', pasteHandler, false);
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/vepo/4t2ofv8n/
为了测试上面的示例,我将从Chrome复制文本并粘贴到IE中.但是我从IE复制任何文本都会得到同样的错误.
wil*_*idi 12
编辑
$(document).ready(function(){
var editable = document.getElementById('editable-div');
var pasteHandler = function(e){
if(e.clipboardData && e.clipboardData.getData) {
var pastedText = "";
if (window.clipboardData && window.clipboardData.getData) { // IE
pastedText = window.clipboardData.getData('Text');
} else if (e.clipboardData && e.clipboardData.getData) {
pastedText = e.clipboardData.getData('text/plain');
}
alert(pastedText);
}
else{
alert('Not paste object!');
}
};
editable.addEventListener('paste', pasteHandler, false);
});
Run Code Online (Sandbox Code Playgroud)
在这里我也处理IE版本和其他浏览器.
e.clipboardData 在IE上对我而言始终为null,因此我提出了以下建议:
var pastedText = '';
if (typeof e.clipboardData === 'undefined')
pastedText = window.clipboardData.getData('Text')
else
pastedText = e.clipboardData.getData('text/plain')
Run Code Online (Sandbox Code Playgroud)