Javascript innerHTML不';不尊重压痕
我在客户端有一个代码,它通过socket.io和node.js后端接收一些数据。我收到一些缩进数据(这是一些字符串格式的代码)。我可以向代码发出警报,我看到它在警报中缩进,但是当我执行Javascript innerHTML不';不尊重压痕,javascript,indentation,Javascript,Indentation,我在客户端有一个代码,它通过socket.io和node.js后端接收一些数据。我收到一些缩进数据(这是一些字符串格式的代码)。我可以向代码发出警报,我看到它在警报中缩进,但是当我执行document.getElementById('myDiv').innerHTML=receivedData.indentedData时,在myDiv中输出的数据不是缩进的,而是在一行中 您知道在填充HTML元素时,如何在某些字符串中考虑缩进吗 更准确地说,我以以下形式提醒数据: class Motto {
document.getElementById('myDiv').innerHTML=receivedData.indentedData
时,在myDiv
中输出的数据不是缩进的,而是在一行中
您知道在填充HTML元素时,如何在某些字符串中考虑缩进吗
更准确地说,我以以下形式提醒数据:
class Motto {
public static void main(String[] args) {
System.out.println("Java rules!");
}
}
但我在myDiv中看到的是:
class Motto { public static void main(String[] args) { System.out.println("Java rules!"); } }
谢谢将
\n
替换为
。您可能知道,换行符在HTML中不会显示为空格,但会被视为空格。尝试以下操作:
document.getElementById('myDiv').innerHTML =
receivedData.indentedData.replace(/\n/g, '<br>');
document.getElementById('myDiv').innerHTML=
receivedData.indentedData.replace(/\n/g,“
”);
在HTML中,换行符被忽略,您必须使用
进行换行。大多数情况下,输出这样的代码时,您需要将其包装在”;
document.getElementById('myDiv').innerHTML = "<pre><code>"+receivedData.indentedData+"</code></pre>";
这就是StackOverflow markdown编辑器对代码片段所做的操作。
innerHTML
尊重缩进。问题在于HTML本身表示数据的方式:它将所有空白显示为单个空格。将\n
替换为
仅是部分解决方案,因为制表符不会被保存。更好地使用它<代码>#myDiv{空白:pre;}在CSS中