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?

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

Last updated at Posted at 2020-01-23

はじめに

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というものを使用するとできるというのを見かけましたので参考までに。。。

参考


会社紹介

株式会社 Mosaica
最先端テクノロジーで社会課題を解決し、持続可能な未来を創造する IT カンパニー。
AI ソリューション、クラウド統合、DX 推進、経営コンサルティングなど包括的なサービスでビジネス変革を支援しています。

詳しくは 公式サイト までお気軽にご相談ください。
公式サイト: https://mosaica.co.jp/

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?