我的文件扩展名为 log 。
我想在新窗口中显示此日志文件的内容(在chrome中)。但是,当我像这样调用我的 window.open 函数时:
lsof -p <process id> -n
我得到了新窗口,但文件作为附件下载,我的窗口如下:
如何在新的浏览器窗口中显示我的日志文件内容(作为普通文本)?
答案 0 :(得分:3)
假设您不想更改文件的HTTP标头,可以使用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
如果你想用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");
这应该有用;)