HTML导入的文本无法正确显示换行符

时间:2015-06-06 05:28:36

标签: javascript html css

我有一个包含文本文件的HTML文件。这是我的javascript包含文本文件:

document.include = function (url) {
    if ('undefined' == typeof(url)) return false;
        var p,rnd;
        if (document.all){
        p = new ActiveXObject("Microsoft.XMLHTTP");
        }
    else {
        p = new XMLHttpRequest();
    }
    rnd = Math.random().toString().substring(2);
    url = url.indexOf('?')>-1 ? url+'&rnd='+rnd : url+'?rnd='+rnd;
    p.open("GET",url,false);
    p.send(null);
    document.write( p.responseText );
};

这是我的HTML:

<html>
    <head>
        <link media="all" href="style.css" type="text/css" rel="stylesheet">
        <title>Report</title>
        <script src="embed_text.js" type="text/javascript"></script>
    </head>
    <body>
        <script>document.include('out.log');</script>
    </body>
</html>

不幸的是,导入的内容没有任何换行符!所有行都相互附加;但是当我进入检查模式时,所有线条都显示正确!我的意思是内容以不同的方式显示。我该怎么做才能解决问题。包括CSS或javascript在内的解决方案完全没问题!

这是HTML视图和检查模式中内容的不同之处:

enter image description here

2 个答案:

答案 0 :(得分:1)

那是因为您的代码被解析为HTML,因此除了第一行之外的新行和空格。

尝试在<pre>代码中包装文字,您应该会看到所需的输出。

答案 1 :(得分:1)

您可以尝试将此代码添加到您的html:

<style>
    body {
        white-space: pre-line;
    }
</style>

有关白色间距的更多信息: http://www.w3schools.com/cssref/pr_text_white-space.asp

如果你的html主体中还有其他组件,而不仅仅是日志中的文本,那么将它包装在div中并更改规则选择器。