jQuery ie问题与粘贴(内容与中断)



我想将内容粘贴到输入字段中(我必须使用输入字段),并将粘贴的内容粘贴到其他输入。我的内容如下(复制所有行并粘贴):

1234
4567
4321

在所有浏览器上,下面的链接工作正常,但IE

http://jsfiddle.net/5bNx4/42/

        $editor.on('paste', function() {
var $self = $(this);            
              setTimeout(function(){ 
                var $content = $self.val();             
                $clipboard.val($content);
            },100);
     });

使用IE时,粘贴内容时,第二次输入只会出现第一行(1234)。但其他浏览器可以获得所有内容。

谁能帮我一下吗谢谢你,

IE无法处理新行,它将只粘贴第一行,而忽略其余行。用空格替换换行符可以达到目的。

clipped = clipped.replace(/(rn|n|r)/gm, " "); //replace newlines with spaces
为了克服这个问题,将下面的代码添加到脚本中,这将正常工作。
if (window.clipboardData) {
    $('#editor').bind('paste', function (e) {
        var clipped = window.clipboardData.getData('Text');
        clipped = clipped.replace(/(rn|n|r)/gm, " "); //replace newlines with spaces
        $(this).val(clipped);
        return false; //cancel the pasting event
    });
}

在IE浏览器中检查JSFiddle

参考:允许在IE文本框中粘贴多行

EDIT: remove console.log

更新JSFiddle

我认为IE不支持在'input'中使用换行符。这意味着你甚至不能将多行粘贴到"输入"中。您可以使用'textarea'来代替,或者在粘贴到达输入区域之前操作粘贴并删除新行。

最新更新