2012年09月11日
ブラウザ判定
・Miocrosoft Internet Explorer
条件付きコンパイルで判定可能です。
/*@cc_on!*/false
IE の場合は /*@cc_on〜*/ の中身が実行され、「!false」=「true」と解釈されます。
IE 以外ではそのままコメント扱いされるので、「false」のままと解釈されます。
<バージョン番号の判定(IE 前提)>
・IE9
新たに追加された opacity スタイルシートで判定します。
ie9 = (document.documentElement.style.opacity !== undefined);
・IE8
document.documentMode の存在有無で判定できますが、互換モードでも IE8 と判定されます。
互換モードの場合は documentMode で返される値をみてもいいと思います。
ie8 = (document.documentMode !== undefined);
・IE7
新たに使用できるようになった、XMLHttpObject で判定します。
ie7 = (!!window.XMLHttpRequest);
・IE6
スタイルシート textOverflow で判定します。
ie6 = (document.documentElement.style.textOverflow !== undefined);
・Mozilla Firefox
古いバージョンでは document.getBoxObjectFor で判定します。
新しいバージョンでは moz 系の属性、たとえば window.mozInnerScreenX で判定します。
ffold = (document.getBoxObjectFor !== undefined);
ff = (window.mozInnerScreenX !== undefined);
・Opera
window.opera で判定します。
opera = (!!window.opera);
・Apple Safari
window.safariHandler で判定します。
→間違いでした。ユーザー定義オブジェクトでした。
window.Selection window.Window を組み合わせます。
safari = (!window.Selection && !window.Window);
・Google Chrome
window.chrome で判定します。
chrome = (!!window.chrome);
{a8.net http://books.livedoor.com/item/3481813}
条件付きコンパイルで判定可能です。
/*@cc_on!*/false
IE の場合は /*@cc_on〜*/ の中身が実行され、「!false」=「true」と解釈されます。
IE 以外ではそのままコメント扱いされるので、「false」のままと解釈されます。
<バージョン番号の判定(IE 前提)>
・IE9
新たに追加された opacity スタイルシートで判定します。
ie9 = (document.documentElement.style.opacity !== undefined);
・IE8
document.documentMode の存在有無で判定できますが、互換モードでも IE8 と判定されます。
互換モードの場合は documentMode で返される値をみてもいいと思います。
ie8 = (document.documentMode !== undefined);
・IE7
新たに使用できるようになった、XMLHttpObject で判定します。
ie7 = (!!window.XMLHttpRequest);
・IE6
スタイルシート textOverflow で判定します。
ie6 = (document.documentElement.style.textOverflow !== undefined);
・Mozilla Firefox
古いバージョンでは document.getBoxObjectFor で判定します。
新しいバージョンでは moz 系の属性、たとえば window.mozInnerScreenX で判定します。
ffold = (document.getBoxObjectFor !== undefined);
ff = (window.mozInnerScreenX !== undefined);
・Opera
window.opera で判定します。
opera = (!!window.opera);
・Apple Safari
window.safariHandler で判定します。
→間違いでした。ユーザー定義オブジェクトでした。
window.Selection window.Window を組み合わせます。
safari = (!window.Selection && !window.Window);
・Google Chrome
window.chrome で判定します。
chrome = (!!window.chrome);
function evaluate(_element) {
val elm = _element;
var ret = 'Unknown';
if(/*@cc_on!*/false) {
var ie9 = (document.documentElement.style.opacity !== undefined);
var ie8 = (document.documentMode !== undefined);
var ie7 = (!!window.XMLHttpRequest);
var ie6 = (document.documentElement.style.textOverflow !== undefined);
ret = 'Internet Explorer ' + (ie9 ? '9' : ie8 ? '8' : ie7 ? '7' : ie6 ? '6' : '5.5 less');
} else if(document.getBoxObjectFor !== undefined) {
ret = 'Old Firefox';
} else if(window.moxInnerScreenX !== undefined) {
ret = 'Mozilla Firefox';
} else if(!!window.opera) {
ret = 'Opera';
} else if(!window.Selection && !window.Window) {
ret = 'Apple Safari';
} else if(!!window.chrome) {
ret = 'Google Chrome';
}
this.value = ret;
{a8.net http://books.livedoor.com/item/3481813}
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
posted by FJT at 05:58| javascript