SQLの窓

2013年11月18日


prototype.js の Browser メソッドを転用して jQueryの名前空間へ投入。IE バージョンも含めてブラウザ(仕様)判定

prototype.js の最終更新は、August 8, 2012 ですし、最新の jQuery では、IE8 より前は動かないでしようし、どこまでするかは非常に疑問ですが、方法として、こんな方法もあるという事です。

結局 jQuery の 名前空間内に変数追加している形です。チェックは変数を使って判断します。(変数追加も簡単だと思います)
<script>
if ( window[window.location.hostname+'.loadjQuery'] !== true ) {
	window[window.location.hostname+'.loadjQuery'] = true;
	if ( !window.jQuery ) {
		document.write("<"+"script src=\"//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></"+"script>");
	}
}
</script>
<script>
$.extend({
	_ua: $(navigator)[0].userAgent,
	_app: $(navigator)[0].appVersion});
$.extend({
	Browser: (function(){
		var app = $._app.toLowerCase();
		var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]';
		var IE = $._ua.toLowerCase().indexOf("msie") > -1 && !isOpera;
		IE = IE || (app.indexOf("trident/") > -1);
		return {
			IE: IE,
			Opera: isOpera,
			WebKit: $._ua.indexOf('AppleWebKit/') > -1,
			Gecko: !IE && $._ua.indexOf('Gecko') > -1 && $._ua.indexOf('KHTML') === -1,
			MobileSafari: /Apple.*Mobile/.test($._ua),
			IE6: IE && app.indexOf("msie 6.0") > -1,
			IE7: IE && app.indexOf("msie 7.0") > -1,
			IE8: IE && app.indexOf("msie 8.0") > -1,
			IE9: IE && app.indexOf("msie 9.0") > -1,
			IE10: IE && app.indexOf("msie 10.0") > -1,
			IE11: app.indexOf("trident/7.0") > -1
		}
	})()
});

console.log($.Browser.Opera);
console.log($.Browser.WebKit);
console.log($.Browser.Gecko);
console.log($.Browser.MobileSafari);
console.log($.Browser.IE);
console.log($.Browser.IE6);
console.log($.Browser.IE7);
console.log($.Browser.IE8);
console.log($.Browser.IE9);
console.log($.Browser.IE10);
console.log($.Browser.IE11);
</script>
関連する記事

JS : ブラウザ判定( IE11 対応 )



posted by at 15:36 | JavaScript | このブログの読者になる | 更新情報をチェックする