Javascript 多次触发粘贴事件
这是我的Chrome处理粘贴事件的代码:Javascript 多次触发粘贴事件,javascript,jquery,gwt,errai,Javascript,Jquery,Gwt,Errai,这是我的Chrome处理粘贴事件的代码: window.addEventListener("paste",processEvent); function processEvent(e) { console.log("paste event!"); } 此代码工作正常,只是即使我只按一次CTRL+V命令,也会多次触发事件。原因可能是什么?我怎样才能防止这种情况发生,因为处理程序在每次按下粘贴命令时只触发一次非常重要 更新: 我登录到控制台,以下是我的意思: paste
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
public void setup() {
pasteEventHandler();
}
当粘贴事件发生时,“页面”会转换到另一个页面(从#Page1到#Page2。当页面转换回#Page1时,setup()方法会启动。好吧,从您的代码中我看到了附加的
window.addEventListener("paste",processEvent);
function processEvent(e) {
console.log("paste event!");
}
} // what's that ?
也许那
}
属于的迭代,或者的迭代,而(或者其他)迭代。当我说了很多次,我的意思是有时两到三(3)次,你确定你只按了一次,并且没有按住粘贴快捷键(CTRL+V)吗?在这里我做了一个小提琴,当我点击结果窗口(右下方)时然后按ctrl+v我只收到一条消息,除非我一直按住它。大括号标记错误,伙计,看起来可能是因为某些原因多次添加事件侦听器…在添加事件侦听器之前添加另一个控制台行。console.log(“添加事件侦听器”);window.addEventListener(“粘贴”,processEvent)
你看到控制台显示3次了吗?我的魔法球说是的。这个问题由@KevinB回答