夏も終わり間近というこのタイミングで今年最初のエントリになっちゃうんだけども、デスクトップ版Safariが5.1になったことで以前書いた「SafariとChromeを判別してみる」の方法が通用しなくなっちゃったのであわてて更新してみる。ほんとは中華パッド3号とか4号とかのこと書きたかったんだけども。前回のおさらい前回のアプローチは、SafariとChromeでwindow.constructorが違っている(SafariはObject、ChromeはDOMWindow)ことを利用してこんなアプローチをしてた。IEとかエラーでるし。onclick="alert(check1())">check1</button>check1ところが、Safari5.1からはwindow.constructorがDOMWindowConstructorとやらに変わっちゃったので、Chromeと判別されちゃう。Referenceでプロパティを確認したところ、「webkitCurrentFullScreenElement」「webkitFullScreenKeyboardInputAllowed」「webkitIsFullScreen」なんてのが見つかった。念のためChromeのJavaScriptコンソールで「document.webkit」まで入力してタブキーで候補をさらってみたところ「Current~」とか「FullScreen~」、「Is~」とかは表示されなかったのでなんとなくで「webkitIsFullScree」を採用することに決定。プロパティの名前からしてbooleanを返すだろうから、単純に!document.webkitIsFullScreenなんて試しても判別がつかないので、undefinedかどうかをテストすることにして、こんな感じに。onclick="alert(check2())">check2</button>check2で、こうなりました。この変更を適用すると、こんな感じに。前回同様is_webkitとis_mobileの判定が出来る前提で。Lion向けっぽいのでいずれこれでも判別できなくなっちゃいそうではあるが。中華パッドネタ書いときたいなぁ。旬をすぎちゃってるんだけども。追記Safari且つChromeとか判定されたり、前回の記事と同時に表示すると上書きされちゃったりなど細々と考慮漏れがあったりしたのでちくちく修正してました。