document.writeln不会写入新行

时间:2011-04-26 20:08:05

标签: javascript

我只是写了一些简单的代码,我注意到使用document.writeln没有写入新行,允许我演示......

    // this is my JSON object
var myObject = {
 "firstName": "John",
 "lastName": "Smith",
 "age": 25,
 "address": [{
    "Address1": "11 My Street",
    "Address2" : "Nice Area",
    "Town" : "Nice Town",
    "PCode" : "P05T 0DE"
    }]
 }

document.writeln(myObject.firstName);
document.writeln(myObject.address[0].Address1);

现在输出以下内容....

  

John 11 My Street

这一切都在一条线上?如果我使用document.write()我会期待这个吗?它发生在IE和IE中。 Firefox浏览器。显然我可以添加+ "<br/>"+ "\n",但我不应该这样做吗?

我是傻瓜吗?

10 个答案:

答案 0 :(得分:14)

HTML布局引擎将所有空格折叠到一个空格。 course 中,您需要<br />或HTML用于将内容放在不同行上的其他机制。

答案 1 :(得分:10)

document.writeln这样做:

  

将文本字符串后跟换行符写入文档。

但在渲染HTML时,空格会折叠并转换为单个空格,因此您的换行符在HTML中不会执行任何操作。

答案 2 :(得分:3)

它似乎只是在一条线上。这样做 -

document.write('<pre>');
document.writeln(myObject.firstName);
document.writeln(myObject.address[0].Address1);

你会看到。

答案 3 :(得分:2)

document.writeln会在您的文档中写一行,而不是HTML 中的“line”。您的文档(源代码)实际上将包含“\ n”,但换行符不会出现在HTML中。

答案 4 :(得分:2)

查看页面来源,了解浏览器如何将每一行放在一行 - 但是如果你想在html中看到换行符,是的,在它们之间放一个'<br>'

答案 5 :(得分:1)

您输出的内容被误解为HTML,您必须输出格式化标签才能让它看起来像您想要的那样。

答案 6 :(得分:1)

我希望页面的源代码可以将它放在两行上,但是浏览器会将它压缩到一行,因为它会将所有空格压缩到一个空格。所以在浏览器中,它会在一行显示它。

正如你所说,你需要添加一个BR元素才能让它显示在两行上。

答案 7 :(得分:1)

document.writeln() 为每一行添加\n。但是,在HTML中,空格全部显示为单个空格;您需要自己添加<br><p>标记。

答案 8 :(得分:0)

使用document.write()或document.writeln()在HTML文档中获取某些类型的列表或新文本行:

    var somevar = "foo";
    for(i=1;i<4;i++){
    document.write(i+". "+somevar+"<br>");
    }

这将输出:

  1. FOO
  2. FOO
  3. FOO

答案 9 :(得分:0)

您只需将JavaScript代码放入<pre>标记。

<body>
     <pre>
          <script src="your_javascript.js"></script>
     </pre>
</body>