对于在p元素中输出一些XML代码的小程序,我需要在输出中有一些换行符。 在上周我尝试了很多东西,比如document.createElement(" br");或插入转义字符\ n或unicode空格字符\ u000A但没有任何效果。
我的输出现在:
true
我需要那样:
<viva:form rdf:parseType="Resource"> <viva:title>55</viva:title>
我的代码:
<viva:form rdf:parseType="Resource">
<viva:title>55</viva:title>
&#13;
var vivaTitle;
function elementeAbrufen() {
vivaTitle = document.getElementById("inputVivaTitle").value;
var p = document.createElement("p");
var t = document.createTextNode(headErzeugen());
p.appendChild(t);
document.body.appendChild(p)
}
function headErzeugen() {
// insert unicode lf
var lf = "\u000A";
var xmlHeadStruktur = "<viva:form rdf:parseType=\"Resource\">";
var xmlHeadTitle = "<viva:title>" + vivaTitle + "</viva:title>";
return xmlHeadStruktur + lf + xmlHeadTitle
}
&#13;
我感谢你的每一个帮助。 干杯,迪迪埃
答案 0 :(得分:6)
使用\ n正常工作。这是一个jsfiddle:
https://jsfiddle.net/Lftqy9b0/1/
var text = document.createTextNode("Hello\u000aWorld");
document.body.appendChild(text);
document.body.style = "white-space: pre;"
&#39; \ n&#39;,&#39; \ u000a&#39;等应该都有效,但我建议使用&#39; \ n&#39;。大多数人会更好地认识到它。
这对你不起作用的原因是HTML崩溃了所有的空白。因此,即使文本节点包含换行符,它也与输入HTML的换行符相同(也就是文本节点。)
您可以在上面的代码段中看到我包含了一个&#39; white-space:pre;&#39;规则。这导致它不会崩溃空白。有关更多选项,请参阅此处:
https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
如果你要将原始文字格式化为这样显示,那可能是最简单的方法。当然,您应该将空白区域规则放在单独的css文件中。
答案 1 :(得分:1)
这有用吗?
var t = document.createTextNode(headErzeugen() + '<br />');