Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.04.2012, 18:04
Интересующийся
Отправить личное сообщение для Pug-dog&Elephant Посмотреть профиль Найти все сообщения от Pug-dog&Elephant
 
Регистрация: 13.05.2011
Сообщений: 12

Возможно ли уменьшить код?
Есть код, выполняющий проверку на мобильность браузера. Если браузер запущен на каком-то мобильном устройстве, то происходит перенаправление пользователя.
var userag = navigator.userAgent.toLowerCase();
	
    var isAndroid = userag.indexOf("android") > -1;
    if(isAndroid) {
        window.location = '1.html';
    }
	
	var isWindowsPhone = userag.indexOf("windows phone") > -1;
    if(isWindowsPhone) {
        window.location = '1.html';
    }
	
	var isWindowsPhone = userag.indexOf("xblwp7") > -1;
    if(isWindowsPhone) {
        window.location = '1.html';
    }

	var isWindowsPhone = userag.indexOf("zunewp7") > -1;
    if(isWindowsPhone) {
        window.location = '1.html';
    }	
	
	var isOperaTablet = userag.indexOf("opera tablet") > -1;
    if(isOperaTablet) {
        window.location = '1.html';
    }
	
	var isOperaMobi = userag.indexOf("opera mobi") > -1;
    if(isOperaMobi) {
        window.location = '1.html';
    }

	var isOperaMini = userag.indexOf("opera mini") > -1;
    if(isOperaMini) {
        window.location = '1.html';
    }
	
	var iPhone = userag.indexOf("iPhone") > -1;
    if(iPhone) {
        window.location = '1.html';
    }
	
	var iPad = userag.indexOf("iPad") > -1;
    if(iPad) {
        window.location = '1.html';
    }
	
	var iSymbian = userag.indexOf("symbianos") > -1;
    if(iSymbian) {
        window.location = '1.html';
    }

Недостаток кода в том, что слишком много if используется. Возможно ли как-то уменьшить код, к примеру через массив или как-то ещё?
Ответить с цитированием
  #2 (permalink)  
Старый 01.04.2012, 18:09
Аватар для Verhal
Интересующийся
Отправить личное сообщение для Verhal Посмотреть профиль Найти все сообщения от Verhal
 
Регистрация: 06.05.2010
Сообщений: 24

используй switch
Ответить с цитированием
  #3 (permalink)  
Старый 01.04.2012, 18:17
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

var userag = navigator.userAgent.toLowerCase(),
    var toReload = [
          "android",
          "windows phone",
          "xblwp7",
          "zunewp7",
          "opera tablet",
          "opera mobi",
          "opera mini",
          "iPhone",
          "iPad",
          "symbianos"
    ].join(";");

if( ~toReload.indexOf("userag") ){
     window.location = '1.html';
}
Ответить с цитированием
  #4 (permalink)  
Старый 02.04.2012, 00:01
Интересующийся
Отправить личное сообщение для Pug-dog&Elephant Посмотреть профиль Найти все сообщения от Pug-dog&Elephant
 
Регистрация: 13.05.2011
Сообщений: 12

Ещё вопрос: а что за операцию совершает тильда перед toReload?
Ответить с цитированием
  #5 (permalink)  
Старый 02.04.2012, 00:08
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

обращает биты числа.

другими словами, проводит такую мат. операцию : -(x+1)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Введенный код в prompt() falsenull Общие вопросы Javascript 8 21.05.2012 16:47
код нe работает в фаирфохе dadli Javascript под браузер 2 28.01.2012 21:18
Помогите код оптимизировать. Suharik Events/DOM/Window 2 27.05.2010 11:59
Opera отдаёт неправильный код функциональных клавиш. NT Man Opera, Safari и др. 1 19.01.2010 02:45
Нужно получить конечный хтмл код must_have Работа 1 05.01.2009 16:59