Safari の選択文字列

Mac OS X 10.4 の Safari 1.3 で選択文字列を取得するスクリプトが動かなくなっていました。Safari のセキュリティが強化された結果らしいのですが。

Safari のスクリプティングって結局のところ JavaScript なんですが、選択文字列の取得は do JavaScript で行っていたんです。で、Safari 1.3 は、JavaScript の脆弱性に対処がなされているようで、このスクリプトを使っても空文字列しか返ってこないのです(Mac OS X 10.3.9 の頃からのことですが)。

いろいろと探してみると、やっぱり JavaScript を使うのですが、選択文字列を取得する方法がありました。

Script Editor で開く

tell application "Safari"
    set selectedText to ""
    if exists front document then
        set selectedText to do JavaScript "getSelection()+''" in front document
    end if
    return selectedText
end tell

何が違うのかがよく分かっていないのですが。分からないので JavaScript について調べる。JavaScript 使えば、画像もリンクも簡単に見つけられる、ということに今更気づく...。

0 件のコメント :

コメントを投稿