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

时间:2017-05-26 14:17:19

标签: javascript

我的文件扩展名为 log

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

lsof -p <process id> -n

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

enter image description here

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

3 个答案:

答案 0 :(得分:3)

假设您不想更改文件的HTTP标头,可以使用XHRfetch 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

如果你想用monospacing打印出来,比如日志,可以用body标签将<pre>包裹在document.write中,如下所示:.document.write('<pre>' + body + '</pre>')

答案 1 :(得分:1)

确保响应中的HTTP标头包括:

ContentType: text/plain

那应该做的工作。

答案 2 :(得分:-1)

浏览器这些天只会下载文件,如果你做这样的事情,你需要做,我不认为有任何方法用javascript这样做所以你应该使用PHP这样,所以你会有执行以下操作(让我们调用此文件log.php):

$file = file_get_contents('/log/eppsta.log');
echo $file;

并使用js打开新窗口:

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

这应该有用;)