2017-05-26 5 views
0

ファイル名がのログがあります。window.openログファイルをウィンドウに表示

このログファイルの内容を新しいウィンドウ(chrome内)に表示​​したいとします。しかし、私は呼び出したときに私のwindow.open機能それほどのように:私は、新しいウィンドウを得るが、ファイルが添付ファイルとしてダウンロードされ、そして私の窓のようなので、見え

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

enter image description here

ログファイルの内容を新しいブラウザウィンドウに(通常のテキストとして)表示するにはどうすればよいですか?

+0

リセットするようにしてください* .logとあなたのChromeで開くように設定します。 –

答えて

3

あなたがウィンドウにログを書き込むために、新しいウィンドウでのdocument.writeを使用し、その後、あなたはXHRfetch APIのいずれかでログをつかむことができ、ファイルのHTTPヘッダーを変更したくないと仮定すると:

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 

あなたはそれがログのように、等幅で印刷したい場合は、おそらくこのような<pre>タグ付きのdocument.writeの呼び出しでbodyをラップ:.document.write('<pre>' + body + '</pre>')

+0

私は取得:res.body()は関数ではありません。私はちょうど..(..)を出すべきですか? –

+1

申し訳ありませんが、実際はres.text()です。私の答えを修正しました。 –

+0

これは常に動作しないようです。かなり頻繁に、現在のウィンドウが読み込まれているファイルで消去されます。/ –

1

応答におけるHTTPヘッダーが含まを確認してください:

ContentType: text/plain

それは作業を行う必要があります。

+0

oa window.openコマンドでconetenttypeをtext/plainに設定するにはどうすればよいですか? –

+0

このソリューションはサーバー側向けです。HTTPヘッダーでそのファイルを提供する場合、ブラウザーはテキストを表示します。あなたがサーバで微妙に調整したくない場合は、受け入れられた答えがあなたに良く合います。 –

-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"); 

これは動作するはずです;)