首页 > 解决方案 > 新行插入键不适用于`... \n` + `...`

问题描述

我有一个我正在尝试创建的字符串。在每个单独的行之间,我想插入一个新的行标记以确保最终消息位于由 \n 分隔的三个单独的行中。这就是我到目前为止所拥有的。

confirmationMessage = `This action will assign <strong>${stack.name}</strong> to you. \n\n` + 
                      `<strong>IMPORTANT</strong>: This App is currently owned by ${stack.owner.username} and cannot be reassigned to this owner once this action is executed. \n\n` + 
                      `Are you sure you want to take ownership o fthis Dashboard. \n`;

我有 \n\n 但它仍然在一行中呈现

标签: javascript

解决方案


这很可能是因为您将字符串传递给该代码毫无意义的解析器/运行时。

  • HTML 解析器知道如何解析 HTML,但不知道 JavaScript。
  • JavaScript 运行时知道如何处理 JavaScript,但不知道 HTML。

现在,需要明确的是,无论字符串在哪里结束,它都会有一个换行符,因为您使用作为 JavaScript 处理的语句建立了它。

如果包含换行符的字符串最终被 JavaScript 运行时处理,那么这些字符将被正确处理,但任何 HTML 都将毫无意义,并像任何其他字符串一样对待:

alert("The line\nbreak escape codes\nwork here.\nBut, <strong>HTML</strong> doesn't.");

但是,如果您将包含换行符的字符串发送到 HTML 解析器,则新行将被视为 HTML 中的任何换行符,它会被忽略,但会处理 HTML。

document.write("The line\nbreak escape codes\nwon't work here.\nBut, <br><strong>HTML</strong> does.");
<div>
You
don't
see
each
word
on
its
own
line
here
because
new
lines
in
HTML
are ignored.
</div>


推荐阅读