10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LocalファイルにJavascriptを使って書き込みする方法(承認必要)

Posted at

はじめに

LocalファイルにJavascriptを使って書き込みする方法をまとめました。
ただし、セキュリティ上必ず承認が必要となってきます。そのセキュリティを回避する方法は今回説明しません。

関連リンク

関連リンクを下記に載せておくので、必要であれば参考にしてください。。

やりたいこと

ブラウザにてHTMLファイル(HTML:write_to_local_file.html)に埋め込んだJavascriptを動かして、ローカル上にあるtextファイル(text.txt)へ情報の書き込みをしたい。

コード実装

write_to_local_file.html
<!DOCTYPE html>
<html lang="ja" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Test for writing to local gile</title>
  </head>
  <body>
    <script type="text/javascript">
      // Scripting.FileSystemObject というオブジェクトを作成(JavaScript内でWSHを使ってファイルを扱う)
      var fs = new ActiveXObject("Scripting.FileSystemObject");

      // text.txtという新規のファイルを作成
      var file = fs.CreateTextFile("text.txt");

      // texxt.txtファイルへ書き込み
      file.Write("Complete, written!");

      // text.txtファイルを閉じる
      file.Close();
    </script>
  </body>
</html>

実行

IE11にて実行しました。

以下のような警告が出て"はい"をクリックすると、その下のテキストファイルの画像の通り、書き込みが完了しました。

参考 参考

まとめ

一般的に使われているブラウザを使用する場合はセキュリティ上毎回承認が必要になるので、この方法だけでは完全自動化することはできません。
回避する方法としては、Javascriptの実行環境を構築する、もしくは"はい"のボタンを自動で押す何かをつける、と今思いつくのはこれくらいです。
chromeブラウザを使用できる場合は、FileSystemAPIというものを使用するとできるというのを見かけましたので参考までに。。。

参考

10
9
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?