Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript innerHTML不';不尊重压痕_Javascript_Indentation - Fatal编程技术网

Javascript innerHTML不';不尊重压痕

Javascript innerHTML不';不尊重压痕,javascript,indentation,Javascript,Indentation,我在客户端有一个代码,它通过socket.io和node.js后端接收一些数据。我收到一些缩进数据(这是一些字符串格式的代码)。我可以向代码发出警报,我看到它在警报中缩进,但是当我执行document.getElementById('myDiv').innerHTML=receivedData.indentedData时,在myDiv中输出的数据不是缩进的,而是在一行中 您知道在填充HTML元素时,如何在某些字符串中考虑缩进吗 更准确地说,我以以下形式提醒数据: class Motto {

我在客户端有一个代码,它通过socket.io和node.js后端接收一些数据。我收到一些缩进数据(这是一些字符串格式的代码)。我可以向代码发出警报,我看到它在警报中缩进,但是当我执行
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中