21

ローカルでテキスト ファイルを作成したいのですが、Google chrome でボタンをクリックして 参照すると、 ActiveXObject が定義されていないなどのエラーが表示され、Safari で参照すると、変数が見つかりません: ActiveXObjectのようなエラーが表示されます 。 . 誰でも私を助けることができます.どのようにファイルを作成して作成できますか.Thanq

<script>
      function createFile() {    
      var object = new ActiveXObject("Scripting.FileSystemObject");       
      var file = object.CreateTextFile("C:\\Hello.txt", true);
      file.WriteLine('Hello World');
      alert('Filecreated');
      file.WriteLine('Hope is a thing with feathers, that perches on the soul.'); 
      file.Close();
      }
    </script>
<input type="Button" value="Create File" onClick='createFile()'>
4

3 に答える 3

27

ActiveXObjectIEブラウザのみ対応。したがって、他のすべてのユーザーエージェントはエラーをスローします

最新のブラウザーでは、代わりにFile APIまたはFile writer APIを使用できます(現在は Chrome でのみ実装されています) 。

于 2012-06-19T13:09:18.673 に答える
11

ActiveXObjectは非標準であり、Windows 上の Internet Explorer でのみサポートされています。

プラグインを使用せずにファイル システムに書き込むためのネイティブなクロス ブラウザーの方法はありません。ドラフトファイル APIで読み取り専用アクセスが許可されていてもです。

クロスプラットフォームで作業したい場合は、署名付き Java アプレットなどを検討する必要があります (これは、Java ランタイムが利用可能なプラットフォームでのみ機能することに注意してください)。

于 2012-06-19T13:09:33.307 に答える
2

Web アプリは、 を呼び出して、サンドボックス化されたファイル システムへのアクセスを要求できますwindow.requestFileSystem()。クロムで動作します。

window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
var fs = null;

window.requestFileSystem(window.TEMPORARY, 1024 * 1024, function (filesystem) {
    fs = filesystem;
}, errorHandler);

fs.root.getFile('Hello.txt', {
    create: true
}, null, errorHandler);

function errorHandler(e) {
  var msg = '';

  switch (e.code) {
    case FileError.QUOTA_EXCEEDED_ERR:
      msg = 'QUOTA_EXCEEDED_ERR';
      break;
    case FileError.NOT_FOUND_ERR:
      msg = 'NOT_FOUND_ERR';
      break;
    case FileError.SECURITY_ERR:
      msg = 'SECURITY_ERR';
      break;
    case FileError.INVALID_MODIFICATION_ERR:
      msg = 'INVALID_MODIFICATION_ERR';
      break;
    case FileError.INVALID_STATE_ERR:
      msg = 'INVALID_STATE_ERR';
      break;
    default:
      msg = 'Unknown Error';
      break;
  };

  console.log('Error: ' + msg);
}

詳細はこちら

于 2012-06-19T13:28:58.243 に答える