新編集画面の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なのではなかろうか・・・。