Javascript 将粘贴事件挂钩到隐藏的文本区域

Javascript 将粘贴事件挂钩到隐藏的文本区域,javascript,textarea,hook,paste,Javascript,Textarea,Hook,Paste,我想钩住的粘贴事件,并强制将此文本粘贴到隐藏的textarea中(然后我想解析textarea的文本并执行“将数据从excel粘贴到gridview”操作)。比如: $('#input1').bind('paste', function(e) { // code do paste text to textarea instead of originally targeted input }); 我应该编写什么跨浏览器代码而不是注释 谢谢。有一种黑客解决方案,当按下Ctrl和V键或Shi

我想钩住
的粘贴事件,并强制将此文本粘贴到隐藏的textarea中(然后我想解析textarea的文本并执行“将数据从excel粘贴到gridview”操作)。比如:

$('#input1').bind('paste', function(e) {
    // code do paste text to textarea instead of originally targeted input
});
我应该编写什么跨浏览器代码而不是注释


谢谢。

有一种黑客解决方案,当按下Ctrl和V键或Shift和Insert键时,会在文本区域触发一个
焦点事件。[是的,它不适用于contextmenu->past]

$(document).ready(function(){
    var activeOnPaste = null;
    $('#input1').keydown(function(e){
        var code = e.which || e.keyCode;
        if((e.ctrlKey && code == 86) || (e.shiftKey && code == 45)){
            activeOnPaste = $(this);
            $('#textarea').val('').focus();
        }
    });
    $('#textarea').keyup(function(){
        if(activeOnPaste != null){
            $(activeOnPaste).focus();
            activeOnPaste = null;
        }
    });
});
当按下Ctrl和V键时,该代码允许指针聚焦在文本区域。此时没有粘贴任何文本,它是在触发此按键功能后粘贴的,因此粘贴的文本显示在文本区域中。之后,在该文本区域上键入时,
#input1
将被聚焦


在键入此内容时,我发现可能有一种解决方案,可以使用范围同时粘贴键盘和鼠标。我也会尝试一下…

您应该将函数绑定到输入字段onChange()事件,并在每次调用此函数时复制其内容,然后处理数据。如果您对“粘贴”内容特别感兴趣(我不知道您在那里想做什么,但通常情况下,在粘贴内容必须另外处理的情况下,这是一个坏概念的标志),您可以尝试实现一个计数器来检查输入速度(例如每秒超过xx个字符->粘贴事件调用)

好主意,谢谢。希望你也能发布鼠标粘贴解决方案。