Быстрый вопрос. Я пишу веб-сайт и хотел бы перенаправлять пользователей на разные веб-страницы в зависимости от их браузера, а также их версии операционной системы iPhone. Я знаю, что вы можете вернуться ко мне и сказать, что пользователь должен решать, какой сайт он просматривает, у него нет выбора в этом вопросе.

Код, который я использую, написан на javascript и может идентифицировать разные браузеры, но не операционные системы iPhone, что является ключом к этому. Это код:


if(navigator.userAgent.match(/iPhone/i)) {
    if(navigator.userAgent.match(Version/4)){
        if(document.cookie.indexOf("iphone_redirect=false") == -1) window.location ="iPhone4.html";
    }
    if(document.cookie.indexOf("iphone_redirect=false") == -1) window.location ="iPhone.html";
}
//Rest of the site goes here

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

Сэм

2
SamRowley 28 Июл 2010 в 19:07

2 ответа

Лучший ответ

Это должно работать:

if(navigator.userAgent.match(/iPhone/i)) {
    if(navigator.userAgent.match(/iPhone OS 4/i)) {
        if(document.cookie.indexOf("iphone_redirect=false") == -1) {
            window.location ="iPhone4.html";
        }
    }
    else {
        if(document.cookie.indexOf("iphone_redirect=false") == -1) {
            window.location ="iPhone.html";
         }
    }
}
1
Sharjeel Aziz 28 Июл 2010 в 15:48

Строка пользовательского агента iPhone 4 настраивается следующим образом:

Mozilla / 5.0 (iPhone; U; CPU iPhone OS 4_0, например Mac OS X; en-us) AppleWebKit / 532.9 (KHTML, например Gecko) Версия / 4.0.5 Mobile / 8A293 Safari / 6531.22.7

Вам должен помочь старый iPhone:

Mozilla / 5.0 (iPhone; U; CPU iPhone OS 3_0, как Mac OS X; en-us) AppleWebKit / 528.18 (KHTML, например, Gecko) Версия / 4.0 Mobile / 7A341 Safari / 528.16

Таким образом, в вашем коде версия будет 4.0.5 для iPhone 4 и 4.0 для iPhone.

1
Jim W. 28 Июл 2010 в 15:27