textarea属性wrap = hard对粘贴的文本,任何变通方法都不起作用?

时间:2012-04-27 15:22:35

标签: javascript html textarea copy-paste

我有一个textarea

<textarea id="id-textarea-readme" wrap="hard"></textarea>

其工作真的很好,直到有人在&#34;记事本&#34;并通过c&amp; p把它放在那里,这些单词被正确包裹但没有&#34;额外的&#34;换行(这是&#34; hard&#34;的目的)

是否有任何解决方法可以使这项工作?任何JS或触发换行的技巧?

2 个答案:

答案 0 :(得分:1)

wrap=hard属性是非标准的,并且在浏览器中不一致。修改设计,以便您不需要依赖此类客户端操作。 Textarea元素应该产生实际的用户输入,当用户实际按Enter键时包含换行符。如果您需要拆分长行以进行进一步处理,请在服务器端进行。

在我的测试中,IE甚至在复制和粘贴中包装。另一方面,Firefox仅在包装空白时引入硬换行符,但在包装在“单词”内时不引入硬换行符,因此对于cols=5,输入0123456789(无论是直接还是复制)显示为两个行但是作为一行发送,而01234 56789作为两行发送。我希望找到其他浏览器兼容性。

答案 1 :(得分:0)

副本&amp;粘贴问题可能来自本机OS换行/返回/换行问题。

你可以只是在textarea DOM元素上监听更改或粘贴并使用javascript解析?这是我的概念猜测,这是jquery中的一个通用示例:

$("textarea").on("change", function(event){
    $this.replace(/\n\r?/g, '\n');
});