【问题标题】:Printing HTML with javascript使用 javascript 打印 HTML
【发布时间】:2017-03-29 04:14:12
【问题描述】:

这是我在使用 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>

即使有换行标记 (&lt;br/&gt;),我也得到一个长行文本显示而不是 HTML 显示。 我尝试了各种我能找到的东西,但都没有奏效。

如何才能逐行正常显示?

【问题讨论】:

  • @mplungian 感谢您的编辑。由于某种原因,我无法正确处理。
  • xyz.ejs可以自己改吗?

标签: javascript html node.js ejs


【解决方案1】:

您不必手动读取文件。

你可以试试:

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

当然,在你应该这样做之前:

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

【讨论】:

  • 不,不。我必须。我在这里的目的是显示它的内容。否则它工作没有问题。还是谢谢。
【解决方案2】:

index.js:

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

xyz.ejs:(使用 代码 %> 进行非转义缓冲)

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

【讨论】:

    猜你喜欢
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 2014-04-14
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多