Javascriptを利用してオペレーティングシステムのタイプを判断する.

20832 ワード

Javascriptを通じてクライアントとサービスの相互作用を実現するには、異なるオペレーティングシステムの互換性を実現するためにオペレーティングシステムを判断する必要があります.良いユーザー体験にも影響します.この時はJavascriptを利用してオペレーティングシステムのタイプといくつかの特性を判断し、分割して解決して、ウェブサイトがプラットフォームを跨いでブラウズする時に良好なユーザー体験を維持することを実現する必要があります.
下のコードはWindows、Mac、Linux、Unixをシステムに塗る判断を実現します.
<script type="text/javascript" language="JavaScript">

<!--

function check_os() {

    windows = (navigator.userAgent.indexOf("Windows",0) != -1)?1:0;

    mac = (navigator.userAgent.indexOf("mac",0) != -1)?1:0;

    linux = (navigator.userAgent.indexOf("Linux",0) != -1)?1:0;

    unix = (navigator.userAgent.indexOf("X11",0) != -1)?1:0;

 

    if (windows) os_type = "MS Windows";

    else if (mac) os_type = "Apple mac";

    else if (linux) os_type = "Lunix";

    else if (unix) os_type = "Unix";

 

    return os_type;

}

//-->

</script>
もしWindowsのOSをより正確に識別する必要があるなら、次のコードを使って操作を続けてもいいです.
<script type="text/javascript" language="JavaScript">

<!--

    var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows"); //    windows  

    var isWin98 = isWin2000 = isWinXP = false;

    var sUserAgent = navigator.userAgent;

    if(isWin) {

        isWin98=sUserAgent.indexOf("Win98") > -1 || sUserAgent.indexOf("Windows 98") > -1; // win98

        isWin2000=sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1; //win2000

        isWinXP=sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows Xp") > -1; //winxp

 

        isWin98 && alert("window 98");

        isWin2000 && alert("windows 2000");

        isWinXP && alert("windows XP");

    }

//-->

</script>
下のコードは、ブラウザがXML特性をサポートしているかどうかを検出するためです.
<script type="text/javascript" language="JavaScript">

    var SupportXml=false;

    var xmldom;

    if(window.ActiveXObject) {

        try {

            xmldom=new ActiveXObject("Microsoft.XMLDOM");

            SupportXml=(xmldom.loadXML(" <ok/>"));

        } catch(e) {} 

    } 

    else if(document.implementation && document.implementation.createDocument) {

        SupportXml=true;

    } 

    alert('XML   :'+SupportXml);

</script>
PS:異なるブラウザをよりよく避けるために、デフォルトの文字が異なるため、ページレイアウトに影響を与えるオペレーティングシステムは、できるだけCSSで固定行高を使用することを避けるべきである.文字の高さを制限するためには、height:auttを使うべきであり、やむを得ず文字の高さを限定しなければならない場合は、emをpxの代わりに使用しなければならない.(たとえばheight:1.1 m;)1 m=1文字の高さは、文字の大きさとともに文字の高さを動的に変化させ、文字の切り捨て現象が発生しないようにします.