javascript - 将粘贴事件 Hook 到隐藏的文本区域

标签 javascript textarea hook paste

我想 Hook <input type="text"> 的粘贴事件并强制将此文本粘贴到隐藏的文本区域(然后我想解析文本区域的文本并执行“将数据从 excel 粘贴到 gridview”操作)。像这样的东西:

$('#input1').bind('paste', function(e) {
    // code do paste text to textarea instead of originally targeted input
});

我应该写什么跨浏览器代码而不是注释?

谢谢。

最佳答案

当 Ctrl 和 V 键或 Shift 和 Insert 键按下时,有一个 hacky 解决方案会在文本区域上触发 focus 事件。 [是的,它不适用于上下文菜单 -> 过去]

$(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 键时,代码让指针聚焦在文本区域上。在那一刻没有粘贴文本,它是在触发此 keydown 函数后粘贴的,因此粘贴的文本显示在文本区域中。在那之后,在那个文本区域的 keyup 上,#input1 将被聚焦。

在键入此内容时,我看到可能有一个使用范围的键盘粘贴和鼠标粘贴解决方案。我也会尝试一些东西......

关于javascript - 将粘贴事件 Hook 到隐藏的文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2232115/

相关文章:

JavaFX - TextArea 的掩码文本

javascript - 在html中使用javascript打印十字

c++ - 如何在启动前为特定应用程序设置 Hook

javascript - 围绕方形动态排列 div 并在方形边结束后旋转它们

javascript - Kendo Grid C# - 再次选择当前页面而不刷新数据源

c# - 从 Javascript 隐藏代码访问数据

textarea - Vaadin 文本区域字体

amazon-elastic-beanstalk - 如何将 chmod +x 权限添加到 AWS Elastic Beanstalk 平台 Hook ?

c# - .NET 事件 - 阻止订阅者订阅事件

Javascript |无法用 String.replace() 替换\n