JQuery перенаправить мобильный при определенных обстоятельствах - PullRequest
0 голосов
/ 27 августа 2011

Я пытаюсь получить сценарий jQuery для перенаправления на мобильную версию моего сайта при определенных обстоятельствах.По сути, если браузер является мобильным, он будет перенаправлен на мобильный, если в URL-адресе не получен аргумент «mobile = 0».У меня есть способ определить, является ли он мобильным, и у меня есть плагин, который позволяет вам получить аргументы из URL с помощью jQuery (http://www.mathias -bank.de / 2007/04/21 / jquery-plugin-geturlparam-version-2 /), который работает.

Поток, который я хотел бы иметь, - это если это рабочий стол, установите для мобильной переменной значение 0, а не для перенаправления.Затем, если это мобильное устройство, перенаправьте, если переменная для мобильного телефона не установлена ​​равной 0 по URL.

В данный момент он не перенаправляется, если я в мобильном браузере.Я проверил, что мое перенаправление работает на мобильном телефоне, но после добавления параметров URL оно перестало работать.

Я начал кодировать, но, поскольку я немного новичок в javascript, я знаю, что допускаю некоторые ошибки.Пока мой код:

 var deviceAgent = navigator.userAgent.toLowerCase();
    var agentID = deviceAgent.match(/(iphone|ipod|ipad|android|iemobile|ppc|smartphone|blackberry|webos|)/);
    var mobile = $.getURLParam("mobile");
    if (!agentID) {
        mobile = "0";
    }
    else {
        return false;
    }
    if ($.getURLParam("mobile")==0) {
          return false;
    }
else {
    if (agentID) {
        window.location.replace("http://remiwebo.vacau.com");
    }
    else {
        return false;
    }
}

Заранее спасибо!

1 Ответ

1 голос
/ 27 августа 2011

Я думаю, что ваша логика может быть немного более сложной, чем она должна быть.

Поток, который я хотел бы иметь, это если для рабочего стола, установите мобильную переменную в 0,и не перенаправлять.Затем, если он мобильный, перенаправьте, если переменная mobile не установлена ​​в 0 по URL-адресу.

1), если это мобильный - Перенаправьте.

2), если у него mobile =0 НЕ перенаправлять.

3) если это ПК, НЕ перенаправлять.

А как насчет тестирования мобильной версии на вашем компьютере?(mobile = 1)?

var deviceAgent = navigator.userAgent.toLowerCase();
document.write("Device Agent: " + deviceAgent);
var agentID = deviceAgent.match(/(iphone|ipod|ipad|android|iemobile|ppc|smartphone|blackberry|webos|)/);

document.write("</br>Agent ID: " + agentID);


//This doens't work well on JSfiddle, but it wwill work (non jquery way)
var mobile = getUrlVars()["mobile"];
document.write("<br />Mobile : " + mobile);

  //If we're a cell phone AND if there is no sign of the mobile parameter, or it is other than 0, redirect.
  if (agentID.length > 3 && (!mobile || mobile != "0")) {
      document.write("<br />GO GO GO TO MOBILE SITE");
      window.location = "mobile.verison.of.my.site.com"
  }
  else {
      document.write("<br />DO NOT GO TO MOBILE");
      return false;
  }
      // Handler for .ready() called.


function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

update: agentID will = ",", строка из 2 символов, если ничего не найдено в строке deviceAgent.Таким образом, вместо проверки, если он нулевой, вы можете проверить его длину.

http://jsfiddle.net/3zv64/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...