如何在Javascript中粘贴事件后发出警报?

Goo*_*bot 19 javascript javascript-events

我有一个简单的过去事件

document.getElementById('paste_area').addEventListener('paste', function() {
    document.getElementById('notice').innerHTML='Text was successfully pasted!';
    alert('Pasted');
}, true);
Run Code Online (Sandbox Code Playgroud)

可以在这里找到一个工作示例http://jsfiddle.net/XEQzz/

警告和通知将在粘贴之前显示.如何在粘贴事件实际完成后延迟警报操作?

I H*_*azy 28

您可以将警报放入setTimeout.

setTimeout(function() {alert('Pasted');}, 0);
Run Code Online (Sandbox Code Playgroud)

这将延迟代码,直到值更新为止.

只要记住,thissetTimeout回调将有较封闭的环境不同的值.

如果你需要一个对外部的引用this,它将是元素,那么在变量中引用它...

var self = this;
setTimeout(function() {alert(self.value);}, 0);
Run Code Online (Sandbox Code Playgroud)

或者使用.bind() (在大多数支持的浏览器中都支持addEventListener.较旧的Safari不支持它.) ...

setTimeout(function() {alert(this.value);}.bind(this), 0);
Run Code Online (Sandbox Code Playgroud)