javascript - Why 'beforepaste' event is not fired in webkit? - Stack Overflow

beforecopy event is fired, but beforepaste event isn't fired. Why is that?<!DOCTYPE HTML>&l

beforecopy event is fired, but beforepaste event isn't fired. Why is that?

<!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>
  • Using the Pasteboard From JavaScript
  • fiddle link : /

beforecopy event is fired, but beforepaste event isn't fired. Why is that?

<!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>
  • Using the Pasteboard From JavaScript
  • fiddle link : http://jsfiddle/BjR9q/
Share Improve this question edited Apr 3, 2020 at 14:38 Brian Tompsett - 汤莱恩 5,89372 gold badges61 silver badges133 bronze badges asked Dec 7, 2012 at 3:29 Hacker WinsHacker Wins 1,28910 silver badges20 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 8

On Chrome 23.0.1271.95 on OS X 10.8.2, onbeforepaste only triggers when the user causes a context menu to pop up.

http://help.dottoro./ljxqbxkf.php:

Occurs before the contents of the clipboard are pasted into the document and provides a possibility to enable the Paste menu item.

Right-clicking the text-box causes the onbeforepaste event to fire, but not pressing ctrlv.

If it's any consolation, the onpaste event fires before the text is actually pasted, in my tests, so I would just use the onpaste event instead.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744840970a4596554.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信