这是我处理粘贴事件的Chrome代码:
window.addEventListener("paste",processEvent);
function processEvent(e) {
console.log("paste event!");
}
此代码工作正常,但即使我只按CTRL+V
命令一次也会多次触发事件。可能是什么原因?我怎样才能防止这种情况发生,因为每次按下粘贴命令时只需触发一次处理程序非常重要。
更新:
我登录到控制台,这就是我的意思:
paste event!
clipboard from event
item found: 0 kind=file type=image/png
found image!
paste event!
clipboard from event
item found: 0 kind=file type=image/png
found image!
paste event!
clipboard from event
item found: 0 kind=file type=image/png
found image!
注意同一事件是如何被触发3次。
更新2:
这段代码实际上是一个围绕JSNI的GWT代码:
public native void pasteEventHandler()/*-{
window.addEventListener("paste",processEvent);
function processEvent(e) {
console.log("paste event!");
}
}-*/;
在应用的@PostConstruct期间调用:
@PostConstruct
public void setup() {
pasteEventHandler();
}
当粘贴事件发生时,“页面”转换到另一个页面(从#Page1到#Page2。当页面转换回#Page1时,setup()方法被激活。
答案 0 :(得分:1)
好吧,从您的代码中我看到了其他}
window.addEventListener("paste",processEvent);
function processEvent(e) {
console.log("paste event!");
}
} // what's that ?
也许}
属于for
或while
(或其他)迭代。