-2

我最近开始接触 Javascript。不是很多,但我想要优化和提示是否有更好的方法来处理这个脚本:

    <script type="text/javascript">
    function fnIsAppleMobile() 
    {
       if (navigator && navigator.userAgent && navigator.userAgent != null) 
       {
        var strUserAgent = navigator.userAgent.toLowerCase();
        var arrMatches = strUserAgent.match(/(iphone|ipod|ipad)/);
        var arrMatches2 = strUserAgent.match(/(android)/);
        if (arrMatches) {
             document.write("<b>You are on iOS!</b>"); }
        else if (arrMatches2) {
             document.write("<b>You are on Android!</b>"); }
        else { 
             document.write("<b>You are likely on a computer.</b>")}
       }
    }

var bIsAppleMobile = fnIsAppleMobile();
</script>

此脚本结束的方式不可能是最佳的。有什么建议吗?

非常感谢您的耐心等待。

4

1 回答 1

1

Afunction当你使用它时,应该返回一个值。在这种情况下,我可能会认为您期望布尔值更具体。

你可以像这样改进你的代码:

<script type="text/javascript">
function fnIsAppleMobile() 
{
   var blnReturn = false;

   if (navigator && navigator.userAgent && navigator.userAgent != null) 
   {
    var strUserAgent = navigator.userAgent.toLowerCase();
    var arrMatches = strUserAgent.match(/(iphone|ipod|ipad)/);
    if (arrMatches) {
         blnReturn = true;
    }
   }

   // True if this is Apple Mobile; false if it's something 
   return blnReturn;
}

// Store it in a variable
var bIsAppleMobile = fnIsAppleMobile();

// Or use it directly where you need it:
if (fnIsAppleMobile()) {
    alert("Cool gadget");
}
</script>

我的建议;从不使用document.write. 至少在您处理DOM时不会。如果您需要输出一些文本,请尝试将其作为文本输出到 DOM 节点内。

于 2013-04-18T17:27:38.313 回答