2017-04-03 19 views
0

オフラインのクライアント専用アプリケーションを構築しようとしています。 data.txtとread.htmlという2つのファイルが同じディレクトリにあるとします。特定のローカルファイルの読み込み/「インクルード」 - オフライン - JavaScriptを使用

ここでは、data.txtの内容をread.htmlで読み込み、DIVで(ユーザーの操作なしで)表示し、<input type="file">など何もありません。

私はこれについて多くの記事を読んでおり、すべてローカルファイルを開くというセキュリティ上の問題のために不可能だと言っています。しかし、私はこれがオフラインのアプリに当てはまるかどうかはわかりません。

var w = window.open("data.txt"); 
var content = w.document.body.textContent; 
mydiv.innerHTML = editForPresentation(content); 
w.close(); 

唯一の問題は、これが.txtファイルのためではなく、例えばのためにのみ動作することである:例えば、私は「ほとんど」私は次のコードで欲しい欲しい達成することができます.xlsxファイルは、ブラウザ(私はEdgeを使用しています)がプレーンテキストとして後者を開かないためです。

これを行う簡単な方法は間違いないでしょうか?

答えて

0

いいえありません。クライアントサイドのJavascriptにはファイルシステムへのアクセス権がありません。期間。最後の。

javacriptを使用する場合は、Node.js(サーバー側のjsライブラリ)またはany other js server-side libraryを使用してサーバーアプリケーションを作成し、必要なもののベースとして使用することができます。次に、あなたのJavaScriptクライアント側でサーバーにアクセスし、必要なファイルを尋ねます。しかし、あなたはアプリケーションの2つの側面を持っている必要があります。サーバーとクライアント。クライアントだけでなく

window.openは、ブラウザウィンドウでリソースを開きます。そのため、それが機能します。新しいページを読み込んでいるようです。ただし、バイナリリソースは読み込まれません。 <script src='something'>を使用してjsファイルをロードすることもできます。ロードされて実行されます。しかし、ロードされたファイルのどれもがファイルシステムにアクセスすることはありません。

+0

私の例はなぜ機能しますか?ブラウザに「このファイルをプレーンテキストとして読んでください」と伝えるだけで十分でしょう。 – Remirror

+0

私はあなたに質問を返す必要があります...なぜそれは平文ファイルでのみ機能しますか?それについて考える。誰かがサイトにアクセスするだけでバイナリファイルを読み込んだら、システムにファイルを保存するためにjavascriptを使うことができるというセキュリティの影響を想像してみてください。可能であれば出現する可能性のあるcaosのレベルを見るのは簡単です。気にしないで。 Node.jsを学ぶと、それをよりよく理解できます。 –

+0

答えに私の版を参照してください。 –

関連する問題