本ブログの更新は停止しています。更新は新しいサイトの Travellers Tales で行なっています。

Safari から URL & ページタイトル&テキストを取得 その1


わたしは、Safari で表示しているページの URL とタイトル、それに本文中のテキストを、メーラなど他のアプリケーションにコピペすることがよくあります。

以前はいちいちひとつずつコピーしていたのですが、面倒なのでこの際 AppleScript で自動化を図ることにしました。

Safari から最前面に表示しているページの URL とタイトルを取得する方法ですが、これは難しくありません。
tell application "Safari"
	set theTitle to name of document 1 as text
	set theURL to URL of document 1 as text
end tell
set the clipboard to ((theTitle & return & theURL) as Unicode text)

これだけでも個人的にはだいぶ便利なのですが、さらに選択しているテキストもコピーするようにしてみます。これを可能にするには、「システム環境設定」の「ユニバーサルアクセス」において「補助装置にアクセスできるようにする」をオンにする必要があります。

以下のようになりました。
set the clipboard to ""
set theText to ""
set isErr to true

try
	tell application "Safari" to activate
	tell application "System Events"
		keystroke "c" using command down
	end tell
	set isErr to false
end try

tell application "Safari"
	set theTitle to name of document 1 as text
	set theURL to URL of document 1 as text
end tell

set theText to the clipboard as text
if isErr or (theText is "") then
	set the clipboard to ((theTitle & return & theURL & return)
	 as Unicode text)
else
	set the clipboard to ((theTitle & return & theURL
	 & return & return & theText & return) as Unicode text)
end if

選択したテキストの内容を取得するために、System Events に命令を送り、Command + C のコピーを行わせています。この作業中に他のことをすると、意図したテキストが取得できません。(なお、クリップボードの内容を theText にセットするのを後回しにしているのは、Command + C の直後にクリップボードの内容を取得しても、タイムラグのせいかうまく取得できないためです。)

このスクリプトをホームフォルダの ライブラリ/Scripts 以下に置くと、スクリプトメニューから呼び出せるようになります。(スクリプトメニューを有効にするには、スクリプトエディタのあるフォルダに一緒にある "Install Script Menu" というファイルを起動して下さい。) ちなみに、ライブラリ/Scripts の中に、Applications というフォルダを作り、その中にさらに Safari というフォルダを作ってその中にスクリプトを置くと、Safari が最前面に出ているときだけスクリプトが表示されるようになります。

このスクリプトを一応アップロードしておきます。[ダウンロード:Text and URL.scpt

さらにこのスクリプトに手を加えてみます。(その2へ続く)

Posted: 日 - 11月 7, 2004 at 09:45 PM               Hatena Bookmark



©