beforecopy
事件被触发,但beforepaste
事件未被触发。为什么会这样?
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<style type="text/css">#editor{width:300px; height:300px; border: 1px solid black;}</style>
</head>
<body>
<div id="editor" contentEditable="true">editor</div>
<script type="text/javascript">
var elEditor = document.getElementById("editor");
elEditor.addEventListener('beforecopy', function(e){
console.log('beforecopy');
e.preventDefault();
e.stopPropagation();
});
elEditor.addEventListener('copy', function(e){
console.log('copy');
});
elEditor.addEventListener('beforepaste', function(e){
console.log('beforepaste');
e.preventDefault();
e.stopPropagation();
});
elEditor.addEventListener('paste', function(e){
console.log('paste')
});
</script>
</body>
</html>
在OS X 10.8.2的Chrome 23.0.1271.95上,onbeforepaste
仅在用户导致弹出上下文菜单时触发。
http://help.dottoro.com/ljxqbxkf.php:
在剪贴板中的内容粘贴到文档中之前发生,并且提供了启用粘贴菜单项的可能性。
右键单击文本框会触发onbeforepaste
事件,但不按ctrl – v。
[如果有任何安慰,在我的测试中,onpaste
事件会在实际粘贴文本之前触发,因此我将只使用onpaste
事件。