Я создаю веб-сайт, который я хочу использовать jQuery Mobile для выполнения javascript на мобильных устройствах, но, поскольку jQuery Mobile не поддерживается всеми настольными браузерами, я хочу, чтобы обычный jQuery был подключен. Как бы я это сделал?
Как я могу прикрепить простой jQuery при отображении на рабочем столе и прикрепить jQuery Mobile при отображении на мобильном устройстве?
Ответы (3)
Вот один из способов сделать это на клиенте:
<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>
Возможно, создать список возможных типов браузеров, а затем протестировать window.navigator.userAgent
? Вы можете использовать библиотеку, например Modernizr, для проверки функций, но это не даст вам фактический тип браузера. Нет (пока) поддержки userAgent для определения класса браузера (настольный компьютер, планшет, мобильный телефон и т. д.), поэтому вы застряли в глупом сравнении UA.
Такие проекты, как 51 Degrees, направлены на упрощение этой оценки, но они несут скрытые расходы, а именно: 51 Degrees занимает более 10 секунд для оценки браузера клиента и соответствующего перенаправления. Конечно, в вашем случае вам нужен условный стиль, а не перенаправление. Это говорит о том, что проверка window.navigator.userAgent
может поддаваться подходу типа if(true) document.write('<javascript resource />')
.
Вам нужно будет протестировать заголовок запроса браузера (User-Agent) на сервере, а затем соответствующим образом связать структуру:
например см. http://pgl.yoyo.org/http/browser-headers.php User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18