iPhoneのSafariのブックマークレットでwindow.getSelection()できない

iPhoneのSafariで選択部分を引用するブックマークレット作ってみたんですが、選択部分がwindow.getSelection()で取得できませんでした。

rdar://7013257: Safari for iPhone: window.getSelection(); in a bookmarklet does not workでバグ報告されてるようです。

回避方法はあるんでしょうか?

SafariからNambuにURLをコピペするスクリプトを書いてみた

最近NambuでTwitter使ってるんですが、SafariからURLをCopy & Pasteするスクリプトを書いてみました。

NambuがAppleScriptに対応していないので、key codeを送って操作してます。keystroke使うとDvorak環境では違うキーになってしまいます。

ショートカットキー が割り当てられていないのでNambuのURL短縮には対応していません。そのかわりTiny URL AppleScript for Safari – MacTipsを参考にして短縮サービス使ってます。
Twitterが自動的に短縮してくれるようなので、スクリプトでは短縮しないように変更しました。またURLだけでなくタイトルもコピーするようにしました。

tell application "Safari"
	tell front document
		set str to name & " " & URL
	end tell
	set the clipboard to str
end tell

tell application "Nambu"
	activate
	tell application "System Events"
		key code 37 using command down
		key code 47 using command down
	end tell
end tell

SafariからEvernoteにページをPDFで保存する方法

Shift-click the elephant with nothing selected to make a nicely-formatted PDF of the current web page and send it to Evernote. Use this option if you want to preserve the formatting on a complex page.Evernote Blog » Blog Archive » Big Evernote for Mac Update

はずかしながら今まで気づかなかったんですが、これによるとSafariでなにも選択していない状態のときにShift+象さんクリックすると、ページのPDFのノートを作成してくれるらしいですね。

試してみたら、PDFでノートが作成されました。

というわけでSafariからEvernoteにPDFで保存するには

  • 象さんアイコンをShift+クリック
  • コンテキストメニューから
  • プリントダイアログから

の3つの方法があるということですね。

SafariでMake LinkするAppleScript

SafariでURLとTitleと選択している文字列を引用するためのAppleScriptを作ってみようと思います。

まずURLとTitleは

set t to name of document 1
set u to URL of document 1

で取得できました。

選択文字列はselectionで取得できるかと思ったら、どうやら無理のようです。で、考えられる方法は二つ。

  • keystrokeかkey codeでcommand+cを送出してコピー
  • JavaScriptでselectionを取得

ですね。今回はJavaScriptで取得してみます。

set theSelection to do JavaScript "unescape(escape(getSelection()));" in document 1

選択箇所がない場合はタイトルをリンク付きで取得。選択箇所がある場合はblockquoteで取得するようにしました。


tell application "Safari"

set theTitle to name of document 1
set theURL to URL of document 1
set theSelection to do JavaScript "unescape(escape(getSelection()));" in document 1


if theSelection is "" then
set theText to "<a href='" & theURL & "'>" & theTitle & "</a>"
else
set theText to "<blockquote cite='" & theURL & "' title='" & theTitle & "'>" & return & "<p>" & theSelection & "<cite><a href='" & theURL & "'>" & theTitle & "</a></cite></p>" & return & "</blockquote>" & return
end if

set the clipboard to theText as Unicode text
end tell

Command+Option+FでGoogleの検索はQuickSilverで

Command+Option+FでGoogleの検索ボックスに移動

FirefoxとSafariで使えます。

覚えておくとマウスに手を運ばなくてもいいので便利。

[From 隠された10の便利なショートカット | Macの手書き説明書


以前はFirefoxやSafariでそのまま使ってましたが、今はCommand+Option+FにはQuickSilverでGoogle検索に割り当ててます。FirefoxやSafariがアクティブでなくても使いたいショートカットなので。

ピクチャ 1 ピクチャ 1