2013-01-07 109 views
0

我有這個移動用戶代理JS的測試,我不太清楚如何正確嵌套它來擴展測試。正確嵌套這個JS

現在基本上測試一下,如果手機或臺式機,我希望它做的更進一步是如果移動,檢查哪些手機和做些什麼。

<script type="text/javascript"> 
    if(/Android|iPhone|iPod|iPad|BlackBerry|Windows Phone/i.test(navigator.userAgent)) { 
    if (/Android/i.test(navigator.userAgent)) { 
     var url = window.location.href = 'http://www.google.com'; 
     url.show(); 
    } 
    elseif 
    if (/iPhone/i.test(navigator.userAgent)) { 
     var url = window.location.href = 'http://www.bing.com'; 
     url.show(); 
    } 
    } 
    else 
    { 

    } 
</script> 

我知道上面的是錯誤的,但它就我設法解決不了。

+0

否則,如果用空格 – mplungjan

+0

想想'url.show()'是多餘的。在Chrome中至少只是設置'window.location.href'觸發頁面加載。 –

+0

@TimCroydon仍然在chrome中工作,但是它的舊版本,有一段時間沒有使用過它,只是想修復我顯然非常愚蠢的錯誤,然後才更新它的預期用途。 – RemeJuan

回答

0

這裏

<script type="text/javascript"> 
    var url="notmobile.html"; 
    if(/Android|iPhone|iPod|iPad|BlackBerry|Windows Phone/i.test(navigator.userAgent)) { 
    if (/Android/i.test(navigator.userAgent)) { 
     url = 'http://www.google.com'; 
    } 
    else if (/iPhone/i.test(navigator.userAgent)) { 
     url = 'http://www.bing.com'; 
    } 
// url.show(); // some special mobile meaning? - never seen that syntax 
    location=url; // this is how I would do it 
    } 
    else { // not mobile 
    // this can be moved out side the ifs with the above location change too 
    location = url; 
    } 
</script> 
0

不想重複自己,你可以做這樣的事情:

if(/big regex here/i.test(navigator.userAgent)) { 
    var agents = { 
     "Android":"http://google.com/", 
     "iPhone":"http://bing.com/" 
    }, i, url; 
    for(i in agents) { 
     if(new Regexp(i,"i").test(navigator.userAgent)) { 
      url = window.location.href = agents[i]; 
      url.show(); 
      break; 
     } 
    } 
}