用 javascript 打印 HTML

Printing HTML with javascript

这是我在使用 Node.js 时遇到的问题:

这是我在 index.js 中的代码:

.....
app.get('/xyz', function(request, response) {
  fs = require('fs');
  fs.readFile('views/pages/xyz.ejs', 'utf8', function (err,data) {

  if (err) {
    return console.log(err);
  }

  response.render('pages/xyz', {result:data});
  });
});
.....

这里是xyz.ejs:

<!DOCTYPE html>
<html>
<head>
</head>

<body>

<div class="container">

<% displayStr=result.replace("\n", "<br/>"); %>
<%= displayStr %>

</div>

</body>
</html>

这是我在浏览器中得到的,当我将它指向 top/yxz 时:

<!DOCTYPE html><br/><html> <head> </head> <body> <div class="container"> <% displayStr=result.replace("\n", "<br/>"); %> <%= displayStr %> </div> </body> </html>

即使有换行标记 (<br/>),我得到的是一长行文本显示而不是 HTML 显示。 我尝试了各种我能找到的东西,但没有任何效果。

如何才能逐行显示正常?

您不必手动阅读文件。

你能试试吗:

app.get('/xyz', function(request, response) {
  response.render('pages/xyz');
});

当然,在你之前应该:

app.set('view engine', 'ejs');

index.js:

...
response.render('pages/xyz', {result:'<xmp>'+data+'</xmp>'});
...

xyz.ejs:(使用 <%- 代码 %> 的未转义缓冲)

...
<% displayStr=result.replace("\n", "<br/>"); %>
<%- displayStr %>
...