2012-04-29 75 views
1

我使用從mobileesp.com獲得的mdetect.js。該文件看起來完美,我需要什麼,我已經保存在本地。然後在我的HTML頁面上,我想調用其中一個功能,如果它返回true(即用戶在移動設備上),則會在頁面頂部顯示一個表格,表示我們的網站當前不支持移動設備。但是,即使到達那裏,我已經失敗了:爲什麼我的javascript檢測不到移動設備?

<html> 
<head> 
<script type="text/javascript" src="mdetect.js"></script> 
</head> 
<body> 
<h1>header 1</h1> 
<script type="text/javascript"> 
document.write(DetectIphoneOrIpod()); 
</script> 
<p>this is normal body text</p> 
</body> 
</html> 

我在做什麼錯?我甚至都沒有接觸到複雜的東西(至少對我來說)。爲什麼它不會根據從該函數返回的內容來寫真或假?任何幫助表示讚賞。

感謝

+0

我知道這似乎很明顯,但檢查你的函數名稱是否正確。 JavaScript通常是camelcased,第一個字是小寫的。 – diracdeltafunk 2012-04-29 02:37:25

+0

我發誓我已經三重檢查;請參閱:[mdetect腳本](http://code.google.com/p/mobileesp/source/browse/JavaScript/mdetect.js) – 2012-04-29 02:38:59

+0

嘗試刪除document.write並單獨調用該函數。 – UVM 2012-04-29 03:12:32

回答

0

我想你想要做的是這樣的:

<html> 
<head> 
<script type="text/javascript" src="mdetect.js"></script> 
</head> 
<body> 
<h1>header 1</h1> 
<script type="text/javascript"> 
    if (DetectIphoneOrIpod()) { 
     document.write("<table>...</table>"); 
    } 
</script> 
<p>this is normal body text</p> 
</body> 
</html> 

然而,你可能想使用DetectSmartphone()DetectMobileQuick()功能來檢測更多的移動設備,而不僅僅是iPhone和iPod Touch。

+0

我該如何檢查「false」,以便通過桌面瀏覽器進行測試? (對不起,這是我的第一個JS項目。)我仍然無法獲得document.write(function());做任何事。如果(!DetectIphoneOrIpod())應該允許您在桌面上進行測試,則可以使用 – 2012-04-29 03:05:08

+0

。請注意添加感嘆號! – mttrb 2012-04-29 03:08:37

+0

讓我變傻......所有這一切,事實證明我有一個輕微fubar版本的mdetect.js。當我重新下載時,一切都很好。謝謝你的耐心!你的代碼工作完美。 – 2012-04-29 03:27:23

0

我不知道這個問題有什麼,但如果您使用的是整個文件只是該功能,這是矯枉過正。這裏有一個下調的版本也應該更容易調試:

function isSmallIDevice() { 
    return navigator.userAgent.search(/iPhone|iPod/i) > -1; 
} 
+0

iPhone和iPod Touch不是現有唯一的移動設備! – mttrb 2012-04-29 02:42:43

+0

@mttrb:我知道。我直接從文件減少了功能。 – icktoofay 2012-04-29 02:43:22

+0

是的,我現在看到OP只使用DetectIPhoneOrIpod函數。 – mttrb 2012-04-29 02:47:25