Photoshopで開いているドキュメントのパスを確認するjavaScriptを紹介します。
複数のドキュメントを開いている場合にドキュメントのパスを確認する方法と、アクティブになっているドキュメントのパスを確認する方法を紹介します。
まずはアクティブになっているドキュメントのパスを確認する方法を紹介します。
サプルコード1をご覧ください。
サンプルコード1
1 2 |
doc_path = activeDocument.path; alert("アクティブなドキュメントの名前は【"+doc_path+"】です"); |
doc_pathという変数にactiveDocument.pathを代入し、alertで表示させています。
アクティブなドキュメントのパスはactiveDocument.pathと記述して取得できます。
activeDocument.pathを変数に代入せずに記述しても良いでしょう。
サンプルコード2のように記述した方がコードが短くて済みます。
お好みで使い分けてください。
サンプルコード2
1 |
alert("アクティブなドキュメントの名前は【"+activeDocument.path+"】です"); |
ただ、このときに注意したい場合があります。
注意したい場合は新規ドキュメントを作成し、まだ一度も保存をしていない場合です。
この場合は、PC上のどこにも新規ドキュメントが保存されていない状態です。
つまりパスが無いということです。
試しに、新規ドキュメントを一度も保存せずにサンプルコード2を動作させてみてください。
エラーが出るはずです。
エラーが出た場合に任意の処理をしたい場合は、サンプルコード3のようにtry…catch構文を記述すると良いです。
サンプルコード3
1 2 3 4 5 6 7 8 9 |
try{ alert("アクティブなドキュメントの名前は【"+activeDocument.path+"】です"); } catch(e){ alert(e.message); if(e.message == "ドキュメントはまだ保存されていません。"){ alert("ここになんらかの処理を記述"); } } |
try…catch構文については詳しくは解説しませんが、簡単にいうと
try{}で囲まれているコードでエラーが起こった場合は、catch(){}の中の処理を実行するということです。
サンプルコード3はalert(“アクティブなドキュメントの名前は【”+activeDocument.path+”】です”);でなんらかのエラーが起こった場合は、catch(e){}内のコードを実行するということです。
eにはエラーに関する情報が入っています。
e.messageでエラーのメッセージを参照しています。
ドキュメントが保存されていない場合のエラーメッセージは「ドキュメントはまだ保存されていません。」です。
サンプルコード3では、エラーメッセージが「ドキュメントはまだ保存されていません。」だった場合はif文の中の処理を実行するように記述されています。
この中に、保存を促すようなコードを記述すれば便利かもしれませんね。
続いて、複数のドキュメントを開いている場合に、全てのドキュメントのパスを確認する方法を紹介します。
documentsオブジェクトを参照します。
documents[1].nameのようにdocuments[]の数値を指定します。
サンプルコード4
1 2 3 |
for (var i=0;i<documents.length;i++){ alert("開いているドキュメントの"+ (i+1) +"個目の名前は【"+documents[i].path+"】です"); } |
ここで注意したいのは、最初のドキュメントは[0]であるということです。
開いているドキュメントが3つある場合は
documents[0]がひとつ目のドキュメント
documents[1]がふたつ目のドキュメント
documents[2]がみっつ目のドキュメント
となります。
慣れないと頭がこんがらがってくるかもしれませんが、やっていくうちに慣れてきますので、とにかくプログラミングに触れて慣れていきましょう。
また、サンプルコード4の場合でも、保存されてい無い新規ドキュメントがある場合はエラーが出ますので注意してください。
コメントの書き込み