JavaScriptでユーザーエージェントを取得してMacを判別する

あまり使う機会はないかもしれませんが、Macでだけ表示が崩れてCSSを分けたいことがあったので、ユーザーエージェントを取得してMacを判別する方法を調べてみました。

サンプルコード

「Mac」と「OS」を含むユーザーエージェントで判別できるようです。
ただiPhoneやiPadも含まれてしまうので、それらは除外します。

JavaScript

var ua = navigator.userAgent.toLowerCase();

// Mac
var isMac = ((ua.indexOf('mac') > -1) && (ua.indexOf('os') > -1)) && !((ua.indexOf('iphone') > -1) || (ua.indexOf('ipad') > -1) || (ua.indexOf('windows') > -1));


// 使用例
if(isMac) {
	alert('Mac');
}

ua.indexOf(‘windows’) > -1 は「mac」と「os」だと Windowsの何かに引っかかったりがあり得そうな気がしたので入れていますが、なくてもいいかもしれません。
iPhoneなどを含んだMac判別のデモページ
 

iPhoneなどを含めたい場合は、除外の記述を外せばOKです。

JavaScript

var ua = navigator.userAgent.toLowerCase();

// Mac
var isMac = ((ua.indexOf('mac') > -1) && (ua.indexOf('os') > -1)) && (ua.indexOf('windows') == -1);


// 使用例
if(isMac) {
	alert('Mac');
}

iPhoneなどを除外したMac判別のデモページ
 

サンプルコード2

navigator.platformでもできるようです。

JavaScript

var pf = navigator.platform.toLowerCase();

// Mac
var isMac = (pf.indexOf('mac') > -1);


// 使用例
if(isMac) {
	alert('Mac');
}

navigator.platformのデモページ
 

【参考サイト】

 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930