javascript - window.open 在窗口中显示日志文件

标签 javascript

我有一个文件扩展名为 log 的文件。

我想在新窗口中(在 Chrome 中)显示此日志文件的内容。但是,当我像这样调用我的 window.open 函数时:

window.open('/log/eppsta.log ', "", "height=800,width=1200,toolbar=0,menubar=0");

我得到了新窗口,但文件是作为附件下载的,我的窗口如下所示:

enter image description here

如何在新浏览器窗口中显示日志文件内容(作为普通文本)?

最佳答案

假设您不想更改文件的 HTTP header ,您可以使用 XHR 来获取日志。或fetch API ,然后在新窗口上使用document.write将日志写入窗口:

fetch('/log/eppsta.log')
  .then(res => res.text())
  .then(text => 
    window.open('', '', 'height=800,width=1200,toolbar=0,menubar=0')
          .document.write(text)
  )
  .catch(err => throw err) // Handle any errors

如果你想让它以等宽的方式打印出来,就像日志一样,也许可以将 body 包裹起来。在 document.write 中使用 <pre> 进行调用像这样的标签:.document.write('<pre>' + body + '</pre>')

关于javascript - window.open 在窗口中显示日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44203875/

相关文章:

javascript - 停止 Div(页脚)上的粘性滚动

javascript - 如何在 ie8 中设置包含函数值的 OnClick 属性?

javascript - 覆盖和恢复功能

javascript - 使用 vue.js 添加搜索功能

javascript - 如何在特定的 'div' 内而不是在页面顶部显示 Angular 加载栏?

javascript - PaperJS 拖放圆形

javascript - 编写此正则表达式的替代方法,因为它无法在除 Chrome 之外的其他浏览器中运行

javascript - Jquery $.ajax 在错误处理程序中返回未定义的 jqXHR

javascript - Moment.js 转换为日期对象

c# - 支持多个客户的项目代码的最佳方式是什么?