3
1

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.

ActiveXObjectを利用してJavaScriptでのファイル出力

Posted at

このご時世にまだそんなことしているんだと突っ込まれそうですが、
IE8(互換モード)でJavaScriptからファイル出力をする必要がありそこでめちゃくちゃ嵌ってしまったので備忘録を兼ねて記事書きます。

ActiveXObjectを利用してファイル出力できますというのは色々な方が記載されていますが、いちお記載すると以下の感じ。

sample1.js
var fso = new ActiveXObject('Scripting.FileSystemObject');
// fileName,addTextは適宜設定
var output = fso.createTextFile(fileName, true, false);
output.Write(addText);
output.close();

またActiveXを利用するために、
IEの設定でインターネットオプション→セキュリティタグ→レベルのカスタマイズから
「スクリプトを実行しても安全だとマークされていないActiveXコントロールの初期化とスクリプトの実行」のラジオボタンを有効に設定。
ここが有効になっていないと「オートメ―ションサーバはオブジェクトを作成できません」のエラーがでます。
6616fad8-fd7c-4391-985f-8f1f5941ad22.jpg

ここまでは良かったのですが、上記の通り記載してもファイル作成ができず、
「ファイルが見つかりません。」のエラーメッセージがでました。
エラーメッセージで検索かけても全くヒットせず、解決策が全く見つからなかったのですが、
同じことをやってファイル出力が上手くいっている人がいたので環境の差分チェックしたら、
保護モードがオンになっていることが不具合の原因でした。

保護モードのチェックを外して同じことを実行したら無事にファイル出力できました。
保護モード.PNG

3
1
0

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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?