我正在構建一個網站,我想使用jQuery Mobile在移動設備上執行JavaScript,但由於jQuery Mobile不被所有桌面瀏覽器支持,我還是希望能夠附加普通的jQuery。我將如何做到這一點?如何在桌面上顯示時附加普通jQuery,並在移動設備上顯示時附加jQuery Mobile?
3
A
回答
0
你必須在服務器上測試該瀏覽器請求報頭(用戶代理),然後結合相應的框架:
例如看到 http://pgl.yoyo.org/http/browser-headers.php 的User-Agent:Mozilla的/ 5.0(窗口; U; Windows NT的6.1;德; RV:1.9.2.18)的Gecko/20110614火狐/ 3.6.18
1
這裏是做客戶端的一種方式:
<html>
<head>
<script type="text/javascript">
function isMobileDevice() {
var index = navigator.appVersion.indexOf("Mobile");
return (index > -1);
}
function loadJQuery() {
if(isMobileDevice())
document.write("<script type='text/javacript src='"+path_to_mobile_jquery+"'></script>");
else
document.write("<script type='text/javacript src='"+path_to_normal_jquery+"'></script>");
}
</script>
</head>
<body onload="loadJQuery();">
<!-- Content -->
</body>
</html>
1
也許建立一個可能的瀏覽器類型的枚舉,然後測試對window.navigator.userAgent
?您可以使用像Modernizr這樣的庫來測試功能,但這不會讓您看到實際的瀏覽器類型。沒有(尚)userAgent道具來識別瀏覽器類(桌面,平板電腦,手機等),所以你堅持做一個愚蠢的UA比較。
像51 Degrees這樣的項目旨在簡化此評估,但它們會產生隱性成本 - 即51度需要10秒以上的時間來評估客戶端瀏覽器並進行相應的重定向。當然,就你而言,你需要條件樣式 - 而不是重定向。這表明window.navigator.userAgent
檢查可能適用於if(true) document.write('<javascript resource />')
類型的方法。
相關問題
- 1. jQuery Mobile頁面未顯示在移動設備上
- 2. JQUERYMOBILE頁面顯示在桌面上,但不顯示在移動設備上
- 3. 如何在移動設備上顯示桌面版網站?
- 4. Google Checkout在移動設備上顯示桌面版本
- 5. 使用JQuery Mobile時未在移動設備上顯示HTML視圖
- 6. 我的網站在移動設備上顯示爲桌面版
- 7. 在jQuery Mobile上通過AJAX加載數據時在頁面創建事件時顯示加載指示燈
- 8. 將移動設備顯示到桌面
- 9. 在SLComposeViewController上顯示附加圖像
- 10. 在移動設備上顯示時在右上方顯示內容塊
- 11. jquery mobile在移動設備上滑動
- 12. foreignObject不顯示在移動設備上
- 13. 如何在移動設備上全屏顯示圖像,但不在桌面上顯示?
- 14. 地圖在移動設備上顯示錯誤(使用JQuery移動設備)
- 15. 在移動設備上顯示報告
- 16. jQuery popover不顯示附加html
- 17. 圖像沒有在移動設備上顯示,但在桌面上顯示,使用PhoneGap
- 18. 鏈接在LinkedIn上「附加」時顯示哪個圖像?
- 19. jQuery如何顯示標題屬性並附加到內部html
- 20. 如何讓移動設備在顯示HTML頁面時關閉其顯示屏
- 21. JQuery Mobile + Phonegap:在設備準備就緒前顯示頁面
- 22. 如何在每次使用jQuery時在表中顯示5個附加行?
- 23. jQuery Mobile加載微調無法在移動設備上工作
- 24. 如何檢測附加SDK面板何時顯示?
- 25. 在桌面上顯示div並在CSS上顯示另一個div
- 26. 同時顯示多個頁面jquery mobile
- 27. 在桌面上顯示DIV on-hover並點擊移動
- 28. 當顯示數字時附加警報()
- 29. CSS - 在移動設備上顯示時,Facebook插件溢出
- 30. 移動菜單不在手機上只顯示在桌面上