JsvascriptでIE,FireFox,Safari,Opera,Chromeのそれぞれのブラウザを厳密に区別する方法が知りたいです。

それが困難な場合はIE/FireFoxとその他のブラウザを区別する方法がわかれば構いません。

最近Javascriptを触っていませんが2008年後半から今までで何かJavascriptで変化したことはあるのでしょうか?
2007年はAjaxというものが出てきましたが、その後 目新しいものがあったでしょうか?それとも今は減少中?

このQ&Aに関連する最新のQ&A

A 回答 (5件)

think49さんが一番上で挙げられているスクリプトがたぶん一番厳密にブラウザを区別できる方法です。

バージョンまで見られますから。

Selectors API はもうすぐ Web 標準です。(仕様の草案が Last Call)
http://www.w3.org/TR/selectors-api/
一般的なブラウザは現在のバージョンか次のバージョンで全部サポートしますし、何より簡単に書けるので、XPath より広く使われるようになると思います。

それから次に各ブラウザの実装が揃っているのが postMessage だと思います。IE 8 でも使えますし。
https://developer.mozil la.org/Ja/DOM/Window.postMessage

その次が DOM Storage です。
http://d.hatena.ne.jp/amachang/20080924/1222239494
http://d.hatena.ne.jp/javascripter/20090424/1240 …

ってこのへんは「2008年後半から今まで」の話ではないですね。ご存じでしたら失礼しました。
    • good
    • 0

#1です。



>> #4 edvakfさん
> Selectors API はもうすぐ Web 標準です。(仕様の草案が Last Call)
そうだったのですか。IEの独自実装だと思いこんでいました。

#1 の「「Selectors API」はWeb標準実装ではありません。」は撤回します。
失礼しました。
    • good
    • 0

>又は、メソッド、プロパティがサポートされているか否か、調べ、なければ別の方法を探る。

この方法が一番堅実と思います。

プロパティでブラウザ判別という意ではないので、一応。

スクリプトを走らせる際に、ブラウザが何かなど、どうでもいいことなのだともいます。はっきりと線を引くことができたらいいんですけどね。
    • good
    • 0

ユーザエージェントは、どうにもならないとき意外は使用しないほうが良いでしょう。

単に、ブラウザの詳細を取得したい場合は別かもしれませんが、それでも厳密に得ることは難しいです。

IE との区別でしたら、最近この掲示板でも使われている、コンパイラステートメントがあります。
ex.)
/*@cc_on @if(1)
// IE 4+
@else@*/
// その他
/*@end@*/
http://msdn.microsoft.com/ja-jp/library/eb0w91wa(VS.80).aspx

ブラウザごとというわけではありませんが、言語ごとに、MIME で分けることもできます。

text/vbscript : IE
text/jscript : IE, Opera, Safari
application/javascript : IE は未サポート(将来的にサポートされる可能性があるので、厳密ではない)

又は ビヘイビア、IE 独自のイベントハンドラなどもあります。

又は、メソッド、プロパティがサポートされているか否か、調べ、なければ別の方法を探る。この方法が一番堅実と思います。

プロパティに関して言えば、ご存知の方も多いかもしれませんが、Opera は window.opera オブジェクトを持っているので、その有無でも区別できます。

後は、<!--[if lte IE 6 ]><![endif]--> とか。

まだ、知らないこともありますが、今のところこのくらいです。
    • good
    • 0

> JsvascriptでIE,FireFox,Safari,Opera,Chromeのそれぞれのブラウザを厳密に区別する方法が知りたいです。


一般的にはユーザエージェントで判別します。

JavaScript によるユーザエージェント判別
http://homepage2.nifty.com/magicant/sjavascript/ …

ただし、ユーザエージェントは設定で変更できるので、UA固有のオブジェクトで判別する事も出来ます。

JavaScript/情報の取得/ブラウザ振分け(オブジェクトの有無) - TAG index Webサイト
http://www.tagindex.com/javascript/user/dist1.html

> 最近Javascriptを触っていませんが2008年後半から今までで何かJavascriptで変化したことはあるのでしょうか?
まだ試していませんが、IE8 で実装された「Selectors API」が大変興味深いです。
jQueryのようにCSSセレクタを渡すことで対応するノードを返します。

IE8 で実装された Selectors API とは何か? - IT戦記
http://d.hatena.ne.jp/amachang/20080306/1204787459

が、「Selectors API」はWeb標準実装ではありません。
類似機能として「DOM3 XPath」に期待しています。

XUL Apps > Tips > DOM3 XPathをノードの検索に活用する - outsider reflex
http://piro.sakura.ne.jp/xul/tips/x0032.html

XPathでノードを拾うもので、CSSセレクタよりも汎用性があります。
現状でもライブラリを使えば、XPathを利用できますが、やはり標準実装の方が安心できますね。

JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記
http://d.hatena.ne.jp/amachang/20071112/1194856493
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング