4

ローカル ディスクに拡張子 (.csv など) のファイル (一時) を作成するのに行き詰まっているので、誰か助けてもらえますか? . グーグルで調べてみると、ActiveX は IE でしか動作しないため、別のブラウザーで試したときにエラーが発生することがわかりました。

    var fso, f1;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f1 = fso.GetFile("c:\\test.txt");
    alert(f1);

非常に役立つ代替案を誰かに提案してもらえますか。

4

2 に答える 2

3

問題は、ECMAScript (JavaScript) のブラウザー実装では、クライアントのディスクに書き込むことができないことですMicrosoft は JavaScript をリバース エンジニアリングし、それをJScriptと名付けました。ベースは同じですが、MS はこれらの ActiveX オブジェクトとコンパイラ (JScript はコンパイル可能です) を追加しました。

つまり、JScript は単なるブラウザ タスク以外にも使用できるため、MS は ActiveX オブジェクトを提供して何らかの形の I/O を有効にしました。IE以外のブラウザーでできることは、HTML5 の新しい DOM Storage オブジェクトを使用することだけです。Teemuはそのためのドキュメントへのリンクを提供しました

于 2013-02-26T10:56:31.803 に答える
2

他の投稿では、Html 5 を使用したローカル マシンへの保存に関するすべての情報をカバーしているため、これについては詳しく説明しませんが、これは Html 5 と互換性のあるブラウザーでのみ機能します (現在、ほとんどのブラウザーは Html 5 と互換性がありますが、私はあなたのプロジェクトの要件を知りません)。

もう 1 つの方法は、サーバー側のコード (ASP.NET、PHP など) を使用してファイルを作成/保存し、ユーザーがファイルをダウンロードできるようにリンクを提供することです。これを .csv ファイルとして保存して、ユーザーがダウンロードした後に Excel で開くことができます。

編集:

私がすることは、ファイルをディスクに保存するように Web サービスを変更することです (詳細:こちら)。次に、Web サービスからファイルを返す代わりに、URL を返してファイルをダウンロードします。その後、JS を使用してユーザーをそのリンクにリダイレクトできます。

于 2013-02-26T11:07:26.230 に答える