この前のエントリで書いた、「Mac OS XのSafariで開いているタブをすべてはてなブックマークに登録するスクリプト」を作ってみようと思い立つ。ちょっとした息抜きになるかと思ったら、これがかなりややこしい。AppleScript超初心者の私がいうのも何だけど、AppleScriptから呼び出せるSafariの機能ってあまりにも貧弱すぎじゃないか。特にタブ関連。 そもそも、開いているタブの数を取得したり、タブを切り替えることすらできないのだ。複数のタブのURLを取得する方法として、ちょっと思いついたのは、 ・現在のページのURLを取得 ・そのURLを配列(AppleScriptだとリスト)に保存 ・AppleScriptのUI Scripting(メニューやボタン操作をAppleScriptから行う)を使って、次のタブを選択 ・これだと無限にタブを切り替え続けてしまうから、現在のページのURLを配列内のデータと比較して、一致したら終了(このアルゴリズムだと同じURLのページを開いていた場合問題になるけど、とにかく手軽さ最優先)
これでうまく行くかと思いきや、処理の途中で無限ループに入ってしまう。うーむ、AppleScript(というかプログラム全般ですが)はよくわからん……。
コメント