Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多次触发粘贴事件_Javascript_Jquery_Gwt_Errai - Fatal编程技术网

Javascript 多次触发粘贴事件

Javascript 多次触发粘贴事件,javascript,jquery,gwt,errai,Javascript,Jquery,Gwt,Errai,这是我的Chrome处理粘贴事件的代码: window.addEventListener("paste",processEvent); function processEvent(e) { console.log("paste event!"); } 此代码工作正常,只是即使我只按一次CTRL+V命令,也会多次触发事件。原因可能是什么?我怎样才能防止这种情况发生,因为处理程序在每次按下粘贴命令时只触发一次非常重要 更新: 我登录到控制台,以下是我的意思: paste

这是我的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
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回答