- ベストアンサー
Folder.selectDialog()について
いつも、お世話になります。 Folder.selectDialog()についてです。 Javascriptを使ってフォルダを参照する方法を調べていたら、 上記の関数を見つけたのですが、 PhotoShopCSでスクリプトを実行で行うと確かにフォルダを開いて選択できるようになるのですが、 htmlでは、無視されてしまいます。 これって、PhotoShopCSとかIllustratorでしか動作しないのでしょうか。 また、html上で同じようなことのできる関数はないものでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
目的がよくわかりませんが、html上で同じようなことのできる関数は無いです。 以前は、html内のVBScriptやJscriptのActiveXObjectでShell.Application オブジェクトを作ってBrowseForFolderとか、 ActiveXObject("UserAccounts.CommonDialog")とかが使えたのですが、 今はだめみたいです。普通はサーバーサイドのプログラム(cgiとかphp)と javascriptを連携させて出来ますが、もしWindowsをお使いなら、拡張子をhtmlで無くHTAにしておけば、ダウンロードさせて実行させる事が可能です。 サンプル(hoge.hta) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> <head> <title>fsotest</title> <script type="text/javascript" charset="utf-8"> <!-- window.onload = function () { var app = new ActiveXObject("Shell.Application"); var objFolder = new Object; objFolder = app.BrowseForFolder(0, "フォルダの選択", 0); var oFolderItem = new Object; oFolderItem = objFolder.Items().Item(); //document.write(oFolderItem.Path); document.getElementById("out").innerHTML="選択したフォルダーは" + oFolderItem.Path + "です。"; } // --> </script> </head> <body> <div id=out></div> </body> </html>
その他の回答 (1)
- yyr446
- ベストアンサー率65% (870/1330)
回答番号:No.1の者です。 単に <input type="file" id="fileselect"> でファイルを選ばせて、ファイル名のみDOMで取得するのじゃだめですよね?
お礼
No1のお礼に書かせていただいたような目的ですのでフォルダを選択するだけでなく、その後そのフォルダ内のファイル情報を取得していきたいものですので、その後のことを考えるとだめだと思うのですが。
お礼
yyr446さん、今日は。 返事遅くなり申し訳ありません。 >目的がよくわかりませんが、html上で同じようなことのできる関数は無いです。 目的は、フォルダを指定し、そのフォルダ内の画像ファイルのexif情報をJavascriptで取り出すことです。 phpを使用してできたのですが、phpだと、フォルダ名、ファイル名に漢字が使用できなかったものですので、JScriptとActiveXObjectを使用すればできるのではないかと考えて挑戦を始めました。 そして、最初に Folder.selectDialog()という関数を見つけました。 PhotoShopでは動作するのに、Javascriptでは動作しないのでどういうことなのかを調べはじめ、自力でわからなかったので質問させていただきました。 お世話をかけます。 >オブジェクトを作ってBrowseForFolderとか、 ActiveXObject("UserAccounts.CommonDialog")とかが使えたのですが、 今はだめみたいです。 VBScript、JScript、JavaScriptの特にファイル関係の関数についてほとんどわかっていません。 ActiveXObjectについては一度じっくりと調べようと思いながら取っかかりがつかめないでいます。 今回教えていただいたスクリプトを基にじっくりと調べます。 今回は、とても貴重な回答をありがとうございました。