String IE11将文本字符串粘贴到文本框中

String IE11将文本字符串粘贴到文本框中,string,google-chrome,internet-explorer-11,textfield,microsoft-edge,String,Google Chrome,Internet Explorer 11,Textfield,Microsoft Edge,知道为什么IE11不允许我将字符串块粘贴到页面表单的文本框中吗?我试过Edge和Chrome,没有问题 例如,如果我从文本文件或Excel中复制许多格式化为列的字符串,并尝试将其粘贴到IE11中表单的文本字段中,则仅粘贴第一个字符串。另一方面,所有的字符串都被粘贴在边缘或铬上 我正在尝试复制此文本: 当它被粘贴到IE11中时,我的结论是: 但当我将其粘贴到边缘或铬上时,我得到了以下结果: 知道IE11中是否有一些设置必须更改吗?这似乎是Internet Explorer浏览器中的已知问题

知道为什么IE11不允许我将字符串块粘贴到页面表单的文本框中吗?我试过Edge和Chrome,没有问题

例如,如果我从文本文件或Excel中复制许多格式化为列的字符串,并尝试将其粘贴到IE11中表单的文本字段中,则仅粘贴第一个字符串。另一方面,所有的字符串都被粘贴在边缘或铬上

我正在尝试复制此文本:

当它被粘贴到IE11中时,我的结论是:

但当我将其粘贴到边缘或铬上时,我得到了以下结果:


知道IE11中是否有一些设置必须更改吗?

这似乎是Internet Explorer浏览器中的已知问题

当您尝试从Excel复制列时,其中包含换行符。输入类型文本不支持换行符,IE浏览器会将其删除。由于这个原因,全文不会被解析,它只粘贴第一个字符串

对于IE浏览器,有一些解决方法可以解决这个问题

  • 您可以尝试使用文本区域而不是输入文本框
  • 您可以尝试使用一些JS/Jquery代码将所有换行符替换为空格
  • 例如:

    Jquery代码:

    $(document).ready(function(){
    if (window.clipboardData) {
            $('#txt1').bind('paste', function (e) {
                var clipped = window.clipboardData.getData('Text');
                clipped = clipped.replace(/(\r\n|\n|\r)/gm, " "); //replace newlines with spaces
                $(this).val(clipped);
                return false; //cancel the pasting event
            });
        }
    }); 
    
    HTML代码:

    <label for="txt1">Enter text:</label>
    <input type="text" id="txt1" name="txt1" style="width:200px"><br><br>
    
    输入文本:
    

    IE 11中的输出:

    参考资料:


  • 问题是我无法控制我们正在使用的网站。我希望我可以使用的浏览器会有一些变化。这对于建议和代码示例来说太多了。这是设计的,没有任何选项可以改变这种行为。谢谢你的理解。