3

在这个片段中,当'FirstText'被写入时,第一行的其余部分被跳过。然后'SecText'写在第2行:

<pre>
 <script>
  function text(){
  document.write("FirstText \n SecText");
  }
  text();
 </script>
</pre>

但是当我setInterval()在这个函数上使用时,单词是挨着写的(不会跳过行)。

有什么建议么?

4

2 回答 2

8

您看到\n创建新行是因为您在<pre />标签内;通常您必须使用 a<br />来查看 . 之外的类似新行<pre />

当您document.write在页面加载完成之前调用时,输出就地输入;所以你会看到你FirstText \n SecText写在<pre />.

但是,在页面加载(在 内)调用它时,会在写入结果之前setInterval清除现有页面;因此正在被删除,并且您不再看到您的新行。<pre />

由于您没有关闭documentusing ,因此对in 的document.close()连续调用将添加到由 . 的第一次迭代打开的文档流中。document.writesetIntervalsetInterval

您可以通过使用<br />而不是解决此问题\n

     <script>
      function text(){
      document.write("FirstText <br /> SecText <br />");
      }

      setInterval(text, 1000);
     </script>

有关更多信息,请参阅https://developer.mozilla.org/en-US/docs/Web/API/document.writedocument.write 清除页面

于 2013-06-02T19:24:50.597 回答
2

尝试这个:

document.write("FirstText <br /> SecText <br/>");

工作示例:

http://jsbin.com/oyolod/4/

于 2013-06-02T19:29:30.780 回答