2014-10-30 2 views
2

Вот мой фрагмент для обнаружения мобильного дисплея на основе размера экрана. Вы можете заставить сайт оставаться в рабочем режиме, добавив параметр forceDesktop к URL-адресу.Лучший способ обнаружения мобильного устройства и перенаправления

I`m новичок в jquery, поэтому, если у вас есть предложения, прокомментируйте.

Кредиты перейти к brandonjp: How can I get query string values in JavaScript?

 <script> 
      $.urlParam = function(name, url) { 
       if (!url) { 
        url = window.location.href; 
       } 
       var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(url); 
       if (!results) { 
        return undefined; 
       } 
       return results[1] || undefined; 
      } 
      window.onload = function() { 
       var forceDesktop = $.urlParam('forceDesktop'); 
       if (!forceDesktop) { 
        if ($(window).width() < 639) { 
         var url = "http://m.mysite.com/";  
         $(location).attr('href',url); 
        } 
       } 
      }; 
     </script> 
+1

Я знаю, что этот пост более 2-х лет, но это должно быть действительно на [Просмотр Кода] (http://codereview.stackexchange.com) вместо того, чтобы здесь ... – Ortund

ответ

0

На самом деле, я считаю, что это очень важно, чтобы обнаружить мобильный от ширины окна.

Так вот, как я использую.

function detectmob() { 
    if(window.innerWidth <= 800 || window.innerHeight <= 600) { 
    return true; 
    } else { 
    return false; 
    } 
} 

if (detectmob()){ 
top.location.href="mobile"; 
} 
+0

Я думаю, вам нужно 'ИЛИ', а не' И', потому что многие экраны телефонов имеют 720 или 800 пикселей высотой, а ширина всего 480 пикселей. – pawel

+0

Да, вы верно, тогда отредактируйте ответ. –

2

лучший способ

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))  
{ 
    var url = "http://m.mysite.com/";  
    $(location).attr('href',url); 

} 

Для более Here

+0

Почему JQuery и не только 'место .Надеть ("http://m.mysite.com/") '? – pawel

+0

Да, он также действителен в одном месте: «location.replace (« http://m.mysite.com/ »)' Но если он хочет использовать url для других целей, он может кэшировать в 'var'. –

1

Если вы собираетесь использовать некоторую форму браузера обнюхивать, а не обнаружение особенностей через что-то вроде Modernizr, лучше всего, чтобы захватить некоторый скрипт из http://detectmobilebrowsers.com/, а не использовать доморощенные/неполные скрипты вставили здесь и там.

2

Почему бы и нет?

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 
    window.location = "http://m.mysite.tld/"; 
} 
Смежные вопросы