2013-03-22 58 views
1

我在Foundation 3中構建了一個響應站點。在Foundation 3中使用Modernizr來檢測設備是否是手機?

剩下的一個問題是排行榜廣告。我希望有一個廣告位在桌面設備和平板電腦上顯示排行榜廣告,但在手機上顯示特定於手機的廣告(因爲排行榜顯然不適合)。

我跟Doubleclick(我們的廣告供應商)討論過,他們建議在廣告去加載一個或另一個廣告調用的地方使用JavaScript瀏覽器嗅探器。

由於基金會使用Modernizr,我一直在尋找一種方法來利用它來檢測要投放的廣告。但看着它的文檔,我沒有看到任何。觸摸是唯一的關係,但那將包括平板電腦;我只想定位手機。

在Modernizr中是否有這樣做,還是應該使用navigator.userAgent?

回答

0

如果你想使用Modernizr的進行簡單的檢查,可以檢查支持觸控

if (Modernizr.touch) { 
    // mobile 
} else { 
    // desktop 
} 

當然,這不是因爲有手機不支持觸摸事件的最正確的解決方案。如果您想對移動設備進行更全面的檢查,現在正確的方法是檢查navigator.userAgent我想。

+0

謝謝,但正如我所說的「觸摸」將適用於所有我需要的智能手機的移動設備。我經常使用觸摸,如果我只是想桌面與手機。除了這次我需要更多的特殊性。 – Steve 2013-03-22 17:08:56

+0

糟糕,錯過了你的問題中的「觸摸」。然後我猜你最好的選擇是導航器對象中的userAgent字符串。再說一次,如果您需要「空間」(桌面和平板電腦中的排行榜廣告),爲什麼不檢查屏幕尺寸? – Henson 2013-03-22 18:01:51

0

走下用戶代理道路可能是矯枉過正。

我只希望定位手機

即使Modernizrs特徵檢測,準確從片分離的手機將是一個頭疼的問題。

如果您的核心問題是顯示正確大小的廣告,爲什麼不直接使用用戶視口來確定廣告尺寸?

例如

if($(window).width() < desktopAdWidth){ 
     // do mobile ad stuff.. 
} 
-1

我使用Modernizr.mq()來評估屏幕大小和像素密度的組合。 我相信像素密度高於1.0的任何東西都是可移動的。

另外根據文檔,觸摸檢測是不可靠的,因爲WebOS不報告觸摸,我懷疑在Windows 8觸控PC上的未來版本的瀏覽器將開始報告觸摸。

+0

桌面/筆記本電腦的像素密度高於1的情況並不少見。我可以想到蘋果的Retina Macbook Pro和Chrome Pixel。 – naoufal 2013-10-29 20:43:33

相關問題