所以我有以下内容:
<html>
<body>
<script type="text/javascript">
document.write('Hello\nWorld')
</script>
</body>
</html>
你可能都知道\n不起作用,我不得不使用<br>.如果我链接到外部js文件,它将无法工作.这是我的问题:
1)为什么不起作用\n?
2)为什么甚至工作?脚本标签内的所有内容都不应该是严格的javascript而不是html和js之间的混合吗?
3)有可能以\n某种方式开展工作吗?
4)我知道\t也不起作用.任何其他在html文件中无效的东西?
5)无关的问题(我不想为此开一个新问题).我安装了node.js以便能够从vim内部尝试js脚本,但是当我运行这个脚本时,我得到错误"文档未定义".当我尝试使用repl时,会发生同样的事情.有任何想法吗?
顺便说一句,我知道这些问题可能已被问过一百万次,但老实说我找不到好的答案,我得到的只是我应该用<br>而不是\n.谢谢你的帮助.
Que*_*tin 13
为什么不工作?
因为空格只是HTML中的空格.
为什么
<br>甚至有效?
因为它是换行符的HTML
脚本标签内的所有内容都不应该是严格的javascript而不是html和js之间的混合吗?
这是主观的.document.write被许多人认为也很脏.
您始终可以使用createElement和createTextNode
是否有可能以某种方式使用?
我知道也不起作用.任何其他在html文件中无效的东西?
HTML不是纯文本.列出所有差异将非常耗时,并超出StackOverflow的范围.尝试阅读规范.
无关的问题(我不想为此开一个新问题).
这完全不相关.打开一个新问题.
Mah*_*ndi 12
我有:
<div>Hello\nworld</div>
Run Code Online (Sandbox Code Playgroud)
我将以下 css 添加到div类中,现在可以正常工作了:
div {
white-space: pre-wrap;
}
Run Code Online (Sandbox Code Playgroud)
我希望这也能解决你的问题。
\n可以,如果您有各种调试器(或类似的开发人员工具),则可以看到文档源,并且您会看到确实有换行符。问题是您查看页面的方式-您没有阅读它的源代码,而是以html文档的形式阅读它。html中的空格被压缩为单个空格。因此,当您更改源代码时,它确实的确发生了更改,尽管当解释为html文档时,该更改不会显示。
您的node.js错误很可能是由您在服务器上运行浏览器脚本引起的。即,引用的脚本document旨在在具有DOM等的浏览器中运行。尽管通用节点进程因为不是浏览器而没有这样的全局对象。这样,当您尝试运行引用名为document的全局对象的代码时,假设它像在浏览器中一样存在,则会抛出错误。document.write不存在,如果要写入屏幕,请尝试console.log或查看其他util函数。