jQuery によるブラウザ判別でバージョンによる違いを判別する方法
スパイスラボ神部です。
以前、jQuery でブラウザ判別をする方法をしらべていたとき、こちらを参考にしていました。
-jQueryで簡単UserAgent判別 - Webtech Walker
なぜかというと Google で一番上に来るからなんですけどね。
しかしもう少し調べてみると、どうやらバージョン判別もできるようです。
-jQueryを使ったブラウザ分岐 | A Day in the Life
どうやら 1.3 系列では使えないらしい $ browser
しかしこの $browser、どうやら 1.3 系列からは使えなくなるようです。
-jQuery.browser - jQuery 1.3.2 日本語リファレンス
$support を使うように、となるようです。
-jQuery.support - jQuery 1.3.2 日本語リファレンス
非推奨になりますが一応$browserも残ってはいるらしいです。
-anything from here jQueryに学ぶ Javascript の基礎(8) jQuery.support upon ver1.3.2──jQuery解読(44)
なかじまんさんの jQuery Browser Selector
-Web ブラウザに依存したコードを書き分ける jQuery Browser Selector プラグイン #1 - Selectors - Postal Search Ajax API with jQuery - Postal Search APIs & Solutions
jQuery 自体はクロスブラウザ (Cross-browser) を指向しているので、このプラグインの存在は矛盾するかもしれません。また、ブラウザの依存性は、他の JavaScript ライブラリを活用したり、CSS を工夫すれば解決できることでもあります。
なるほど。
-Web ブラウザに依存したコードを書き分ける jQuery Browser Selector プラグイン #2 - Selectors - Postal Search Ajax API with jQuery - Postal Search APIs & Solutions
たしかにjQuery プラグインの中には、あんまりクロスブラウザじゃないものもあります。以前このブログでもとりあげた jAlert とかも・・・
参考:mixi アプリで alert の置換に最適な jQuery プラグイン「jAlert」 ( ラボブログ )
その他
今回の件とは関係無いけど、jQuery まわりでこちらも参考になります。
-jQuery (X)HTML操作のメモ1 | A Day in the Life
コメント ( 1 )
こんにちは。なかじまんです。opensocial-jquery の引用ありがとうございます。
その1:display.none の切り替え
display プロパティに show はないので、前者はスルーされているだけかもです。次のように書くのが一般的でしょうか?
$("#showdialog").show();
$("#showdialog").hide();
$("#showdialog").css('display', 'inline');
$("#showdialog").css('display', 'block');
$("#showdialog").css('display', 'none');
その2:なにで囲われるべき?
jQuery(function($) {} は jQuery(document).ready(function() {} のショートカットです。
opensocial-jquery の実例で jQuery(function($) {} としているのは、他のライブラリの $ も併用したいときがあるので、jQuery のブロック内だけ jQuery=$ にしたいという意図があります。はじめから $ でアクセスしても問題ないですよ!
Using jQuery with Other Libraries
http://docs.jquery.com/Using_jQuery_with_Other_Libraries
投稿者: なかじまん | 2009年05月30日 08:51
日時: 2009年05月30日 08:51