0

javascript を使用してファイルにデータを追加するにはどうすればよいですか?

このコードを使用しようとしましたが、エラーが発生しました:

var fso = new ActiveXObject("Scripting.FileSystemOject");
var filepath = fso.GetFile("member.txt");
var fileObject = fso.OpenTextFile(filepath, 8);
file.WriteLine(id + "|" + pass);
fileObject.close();

エラーは次のようにvar fso = new ActiveXObject("Scripting.FileSystemOject");書かれています:Error: Automation server can't create object

javascript を使用してファイルを追加する他の方法、またはこれを修正する方法はありますか? ありがとう :)

編集: 私はこれに書かれていることをしていますが、まだ機能していません:/

4

4 に答える 4

1

私はあなたのコードでこれらを実現しました:

var fileObject = fso.OpenTextFile(filepath, 8,true);

trueファイルが存在しない場合、またはファイルを上書き/追加する場合は、-引数が必要です。

var filepath = fso.GetFile("member.txt");// This won't work.
var filepath = "your_filePath"; // Use this instead
var fileObject = fso.OpenTextFile(filepath, 8, true);

OpenTextFile()のような文字列としてのパスが必要"D:/test/file.txt"です。文字列 ( ) として表示GetFile()されるオブジェクトを返しますが、文字列ではありません。絶対パスも使用してください。相対パスは私の経験では機能しないようです。D:\test\file.txt

編集

以下のコードを<head>html ファイルの -part に追加し、hta としてローカルに保存します (ファイル拡張子はまたはhtaではありません)。htmhtml

<hta:application
  applicationName="MyApp"
  id="myapp"
  singleInstance="yes"
/>

次に、hta ファイルを実行します。それでも ActiveX エラーが発生する場合は、お使いの OS でサポートされていません。これが機能する場合は、すべてのセキュリティ設定が正しく行われていません。

編集Ⅱ

この場合、ActiveX を介してパスを取得することはあまり役に立ちません。とにかく、リテラルで記述する必要があります。そして、私はあなたの宿題をすることになっていませんが、これはうまくいきます...

var filepath = new String(fso.GetFile("member.txt")).replace(/\\/g,'/');

そして、絶対パスの使用について上で述べたことを忘れないでください...

于 2012-04-17T16:54:52.827 に答える
0

ActiveX の実行を許可しないセキュリティ制限があるため、エラーがスローされます。インターネットエクスプローラーを使用している場合は、セキュリティ設定を変更してactivexを許可してください(私はあなたがそうしていると思います)。これは役に立つかもしれませんhttp://windows.microsoft.com/en-US/windows/help/genuine/ie-activex 乾杯

編集: 私はこれに書かれていることを行っていますが、まだ機能していません:/ * ブラウザを再起動してみてください

于 2012-04-17T14:58:34.033 に答える
0

8関数内の は、OpenTextFileファイルに追加することを指定します。あなたの問題は、ブラウザのセキュリティ制限に起因しています。これを機能させるには、セキュリティ レベルを下げる必要がありますが、これはあまりお勧めできません。

于 2012-04-17T15:00:04.080 に答える