新編集画面のsafari対応について

 Webサーフィンしていて、参考になりそうなページを見つけました。


bricklife.weblog."Safari「でも」使える MT Bookmarklet"より

(前略)


例えば、JAVASCRIPT::BOOKMARKLETでは Safari 限定の Bokmarklet が公開されていて、僕もこれを使っています。


(中略)


まずは、Safari で動かない原因ですが、どうやら選択文字列を取得する document.selection() や document.getSelection() が、Safari では動かないようです(そもそもどちらも IE や NN で勝手に実装した関数かも知れませんが)。上記サイトを参考にすると、Safari で選択している文字列を取得するには、 window.getSelection() を使えばよいようです。window から直に叩けるとは大胆な仕様です(^^

ということで、safariの場合は、document.selectionの代わりに window.getSelectionを使ってみてはいかがでしょうか。テストしてみる価値は有ると思います。

 ちなみに「Safari で動作する MT Bookmarklet 導入」に、動作確認報告があります。
 注意事項として、


Safariメモ」より

Safari BetaのDHTMLバグ

(略)

  • 〔β1/β2〕window.getSelectionが常にundefindedを返す。

(略)

というのが報告されていますので、ブラウザのバージョンチェックかwindow.getSelectionのundefindedチェックで、β2以前は撥ねたほうが良さそうです。


 話のついでに「ブラウザ判別では"Gecko"を調べてください」もご紹介しておきます。

Mac用のブラウザである"safari"(Konqueror)がGeckoブラウザと誤認されるように偽装していることが、 先日公開されたベータ版から判明しました。


対応策として調べる文字列を"Gecko"から"Gecko/"に変更しています。 詳細は次のバグをご覧ください。 [Bug 2917]

とのことです。


 以上ご報告まで。 < id:hatenadiary

P.S.

 ・・・ところで、新編集画面の支援ボタンって、MacIEでは使えてるんでしょうか。
 それとも実は。対象外なの?
 Macのことは詳しくないので不安です。(かなり)

P.P.S

 っていうか、getSelectionできても set出来なければ意味ないなぁ。
 getSelectionの返り値はTextなのかTextRangeなのか。ブックマークレットを見ているかぎりでは、Textなのではなかろうか・・・。