HTMLからAppleScriptをcallするには?

OSX 10.3.3でHTML書類を作っています。
HTMLのなかでAppleScriptをcallする方法を教えてください。
ブラウザはサファリです。
これまでOS9環境、ブラウザIE ver5ではこう記述してました。
<a href=”AppleScript.app”>label</a>
このばあいのAppleScript.appは、
GraphicConverterでスライドショーをさせるプログラムです。
ブラウザ上でlabelをクリックすると、
そのフォルダに収めた画像がスライドショーされます。
ところがこのやりかたが、OSX上では、
IEでも動かず、サファリでも動きません。
OSXで、HTML文書からAppleScriptをcallするには、
どう記述したらいいのでしょうか。

投稿日 2004/07/30 07:33

返信: 8

2004/07/30 10:03 Community User への返信

できません。
回避法としては、
1. ローカルのマシンにウェブサーバを立てる
2. そこに CGI を作って、その CGI が呼び出されたら、所望の AppleScript を動かす
という手順でいかがでしょうか?
この説明で、何をすべきかわからないようであれば、失礼ながら現在のあなたの知識では、上記のような手段で AppleScript を動かすと、セキュリティ上の重大な問題を招く可能性があるので、素直に諦めた方がよいと思います。

2004/07/30 10:56 Community User への返信

ありがとうございます。
できませんか。
それから、書いていただいた回避法は、よくわかりません。
知識不足ですね。
CGIはPerlで自作したものを動かしてますが、
これまでOS9では、MacPerlで稼働させてました。
主にホームページのアクセス数のdailyな管理に使用してます。
OSXはPerlがinstallされているようですが、
これがまだ使い方がわからなくて、
いまの段階ではClassic環境でMacPerlを使ってます。
これもまた知識不足です。
しかし、OS9で使っていた、HTMLとAppleScriptの連携は凄く魅力です。
GraphicConverterのcallのほかにも、いろいろ使っていたので、
なんとか方法を見つけたいです。
OS9のIEからの起動とおなじことはできないとしても、
逆に、AppleScriptからサファリを起動させ、
AppleScriptはidleにしておくという方法はないでしょうか?
なにしろ知識不足のズブの素人なので、
何か、手があったらご教授ください。

2004/07/31 02:03 Community User への返信

イメージとしては、cgi はブラウザからターミナルでプログラムを実行させるようなものだから、perl だろうが、apple script だろうが、その他任意のプログラムだろうが何でも実行出来るのでは。
例えば、OSX には、open という、ターミナルから任意のマックプログラムを、あたかもファインダー上でダブルクリックしたかのように実行するコマンドが用意されています。cgi でこれを動かすようにしておけばよいのでは。
例えば、applescript.cgi というファイルを用意し、これに
####### ここから
#!/bin/sh
open Apple_Script_Name
####### ここまで
と書いて、これを cgi directory におきます。Apple_Script_Name はフルパスで書いておく方がいいかもしれません。もちろん、このスクリプトは、chmod 755 としてブラウザから実行可能にしておきます。(もちろん問題のスクリプトもその他ユーザで実行しておけるようにしておく必要があります)。
あとは、これを普通に
<a href="http://host_name/cgi/applescript.cgi>ラベル</a>
としておけばいいのでは。

2004/07/31 07:29 Community User への返信

あ、これは朗報です。
ありがとうございます。
<a href="http://host_name/cgi/applescript.cgi>ラベル</a>
は、HTML文書ではすでに試しズミです。
さっそくやってみます。
じつは昨夜、ターミナルモードからperl文書を呼び出してみたら、
すんなり実行されました。
参考図書によると、perlの実行にはいろいろ手順が必要とありましたが、
ターミナルモードだと何の手順もいらないんですね。
ぼくはプロバイダとUNIXシェル契約してるので、
これまでプロバイダのHDとtelnetでやりとりしてました。
これからはターミナルモードですべてできるから、うれしいです。
しかし、AppleScriptで.cgi文書を書くこと、
こういうOpenコマンドのあることは、
まったく知らなかったし、推測もできませんでした。
凄く助かります。
時間かけて試してみます。
これからもご教授よろしくお願いします。

2004/08/02 08:54 Community User への返信

AppleScript CGIのヒントをいただき、ちょっと調べてみました。
そしたらネット上にたくさんの記事がありました。
やはりみなさん同じことを考えてるんですね。
ある記事によると、AppleScriptでcgiを書き、コンパイルして保存。
それを
<a href="AppleScript_app.cgi">label</a>
で読み出す。
そのときOSX 10.3.3以降のSafariには、
これを解釈して実行するルーチンがインストール済みということでした。
(コンパイル時に秘密があるようです)
これはすてきなので、検討してみようと思ってます。
ただぼくは別の、じつに簡単な方法をみつけました。
Safariの画像描写速度は凄く早いです。
ぼくはデジカメ写真を撮ってますが、サイズが3000pix x 2000pixと巨大です。
これをIEでcallして800pix x 450pixにresizeして表示しようとすると、
かなり時間がかかります。
Safariだと、一発です。
体感上で、IEの5倍くらい早いということになりましょうか。
これならGraphicConverterのスライドショーを呼び出すまでもなく、
JavsScriptでSafari上のスライドショーを書けばいいことで、簡単です。
いままで表示速度がかったるいので、
GraphicConverterとの連携をとっていましたが、
ブラウザでおなじ速度が得られるなら、そのほうが楽です。
しばらくはこれでやってみようと思います。
AppleScript CGIは、時間をかけて検討します。
はにさんのヒントのおかげです。
ありがとうございました。

2004/08/02 10:15 Community User への返信

> OSX 10.3.3以降のSafariには、これを解釈して実行するルーチンがインストール済み..
そうですか。簡単に済みそうでいいですね。
でも個人的には、特定のブラウザの機能に頼るやりかたは感心しませんね。Windows-IE でしかうまく表示されないページを非難できなくなります。

2004/08/02 13:48 Community User への返信

はい。
おっしゃる通りで、ネットにのせたHPでは使いません。
ここに書いたのは個人的に使う、いわば job 一覧です。
公開はしません。
ブラウザで、写真一覧をリストしています。
これまでに撮った写真の、日付別フォルダと内容が記載されています。
たとえば「昨年4月1日に撮った桜の写真」とあって、
これをクリックすると、スライドショーが始まります。
これはiPhotoでもできますが、
オリジナル写真は日付別のフォルダに収めているのに、
iPhotoだと、これをいったんiPhoto用にコピーしなくてはならない。
これはずいぶん無駄です。
また追加の手間もかかります。
そこで写真一覧ブラウザを自作しました。
ぼくのHPでは、クライアントのブラウザをIEと、Netscape、2種にわけて判別し、
さらにそれを、Winと、Macにわけて、
個別のStyleSheetとJavaScriptをのせてますが、
Safari用はうっかりして加えなかった。
そこで調べてみたら、SafariはNetscape互換なんですね。
あらためてSafari用のStyleSheetやJavaScriptは必要ないようです。
なんにしてもはにさんの書きこみで目がひらきました。
こんどはAppleScript CGIにゆるゆる挑戦します。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

HTMLからAppleScriptをcallするには?

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。