我知道我的问题与此问题非常相似:jQuery text() function loses line breaks in IE,但我的需求略有不同。
我的页面上有一个textarea,它有一个由用户输入的“模板”文本字符串。 (它允许他们使用%NAME%作为名称的占位符来编写消息。)
在用户完成“模板”之后,我将其放入第二个文本区域,该文本区域实际上将%NAME%替换为应该使用的任何名称。我已经涵盖了该功能的一部分,并且它完美无缺。
第二部分也适用于大多数浏览器。
但是,在Internet Explorer中,第一个textarea的换行符不会保留到第二个。例如,如果用户输入第一个框:
Hi %NAME%,
How are you?
替换文字的名称是“Zak”,第二个框显示为:
Hi Zak,How are you?
将文本放入第二个框的代码是:
var inviteTemplate=$('#invitationTemplate').text();
inviteTemplate=inviteTemplate.replace(/%NAME%/g,name);
$('#invitationText').html(inviteTemplate);
我假设问题在于使用.text()
来获取textarea的内容。有什么方法可以让IE保留换行符到第二个textarea?
答案 0 :(得分:8)
您正在将数据作为文本读取并将其编写为HTML。您是否尝试过使用HTML BR标记替换换行符? e.g。
inviteTemplate = inviteTemplate.replace(/\n/g, '<br>');
我很确定会做你想做的事。
答案 1 :(得分:3)
我可以确认在IE9测试版中,您可以将文本从一个TEXTAREA元素传输到另一个TEXTAREA元素,并保留换行符。