StarMaster

Рейтинг
18
Регистрация
11.11.2014
melkozaur:
StarMaster,
Ну если серьезно: зачем обвешивать свой сайт явно лишними скриптами?
Не правильнее ли забить на поддержку старых версий IE, чтобы пользователь наконец понимал, что браузер устарел?

У меня сайт о браузерах.

Под чем им ещё зайти, чтобы скачать нормальный браузер?

---------- Добавлено 07.12.2016 в 16:47 ----------

Наконец-то заработало! после того, как добавил в стили:

-js-display: flex

к уже сущестующему:

display: flex;

Тем не менее, всё-равно есть баги.

Принял решение поставить редирект на страницу-заглушку, с ссылками на нормальные браузеры.

Дикий пионер:
Перед закрывающим тегом </body> пишите
<script>
flexibility(document.documentElement);
</script>

должно помочь

Прописал, не сработало.

Может под IE8 скрипт не работает?

Кто-то говорит, что он для IE9.

Может есть ещё варианты?

ЗЫ

Проверял на локали.




---------- Добавлено 07.12.2016 в 15:54 ----------

melkozaur:
Сайт посвященный Фидо?

Бесплатный софт

LEOnidUKG:
Explorer 8 321,877 0.3%
Explorer 9 211,230 0.2%

0.5% пользователей интернета?! Оно вообще надо?

Согласно Метрике, за крайние 30 дней, на мой сайт под IE8 зашло 17,3 % пользователей.

foxi:
StarMaster, в дебиане и убунте хром к примеру не пишет подробностей об ОС. Юзер агент выглядит так: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36

Понял, спасибо.

Оптимизайка:
You can't.........

Кто-то же смог:

А я не могу, потому что не разбираюсь в JS, поэтому и попросил о помощи.

Sitealert:
Со скобками, условными операторами - можете творить на свой вкус. А вот плюс - это либо оператор сложения, либо оператор конкатенации, - его с логическими операторами не надо перемешивать, иначе результат получается труднопредсказуемый. То есть если получилось, то по стечению обстоятельств. Но такой код считается грязным.

Скопировал ваш пример (что без знака +), вставил для всех систем, и тоже отлично работает!

P.S.

Посоветуйте книгу, по которой обучались JS :)

Sitealert:
Попробуйте всё-таки как-то по-другому написать. Так неправильно. Не надо там ничего плюсовать.

В общем, если + заменить на ||, то опять выдаёт пакет для Win8 64-bit, то есть опять неполадки.

И скобки тоже нужны, без них не работает даже с знаком +.

Последовательность в строках и внутри строк именно такая, как я вписал, иначе не работает.

P.S.

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

Sitealert:
Имеются в виду приоритеты: сначала делается "и", потом "или". А последующая операция "затирает" предыдущую. То есть у Вас сначала срабатывает выбор 'win7-64' по совпадению
navigator.userAgent.indexOf('WOW64')!=-1,
а после этого срабатывает выбор 'win8-64' по тому же самому совпадению (последняя строка). Чтобы расставить приоритет "или" а потом "и", надо написать
if (navigator.userAgent.indexOf('Windows NT 6.1')!=-1 && (navigator.platform.indexOf('Win64')!=-1 || navigator.userAgent.indexOf('WOW64')!=-1)) T0.CngClass('win7-64');
В сам код я особо не вникал, но пока вот так получается.

Пораскинул мозгами, и следуя вашему совету в итоге всё заработало в таком варианте:

<body onload="T0=new CngClass('selected');
if (navigator.userAgent.indexOf('Windows NT 5.1')!=-1) T0.CngClass('win5');

if (navigator.userAgent.indexOf('Windows NT 6.0')!=-1 && navigator.userAgent.indexOf('WOW64')!=-1 + (navigator.userAgent.indexOf('Win64')!=-1)) T0.CngClass('win6-64');
else if (navigator.userAgent.indexOf('Windows NT 6.0')!=-1) T0.CngClass('win6');

if (navigator.userAgent.indexOf('Windows NT 6.1')!=-1 && navigator.userAgent.indexOf('WOW64')!=-1 + (navigator.userAgent.indexOf('Win64')!=-1)) T0.CngClass('win7-64');
else if (navigator.userAgent.indexOf('Windows NT 6.1')!=-1) T0.CngClass('win7');

if (navigator.userAgent.indexOf('Windows NT 6.2')!=-1 && navigator.userAgent.indexOf('WOW64')!=-1 + (navigator.userAgent.indexOf('Win64')!=-1)) T0.CngClass('win8-64');
else if (navigator.userAgent.indexOf('Windows NT 6.2')!=-1) T0.CngClass('win8');
">

На XP и 8 не проверял, но если на 7 и Vista работает (в IE всех битностей), то значит и там должно.

Ещё раз огромное спасибо, Sitealert!

Дикий пионер:

скобочек попробуйте в условия добавить, а сдаётся мне там все слева-направо просто проходится и для 64-итных платформ срабатывает

На примере одной строки покажите куда скобки добавить, а то справа добавил (как в вашем примере), а слева не знаю куда :)

ЗЫ

Сдается мне, на днях начну плотно изучать JS, а то стыдно как-то становится... )

Кстати, чтобы код работал и для 32-битных браузеров под 64-битной Windows, он должен выглядеть (выделил зеленым) так:

<body onload="T0=new CngClass('selected');
if (navigator.userAgent.indexOf('Win')!=-1) T0.CngClass('win');
if (navigator.userAgent.indexOf('Mac')!=-1) T0.CngClass('mac');
if (navigator.userAgent.indexOf('Linux')!=-1) T0.CngClass('lin');
if (navigator.userAgent.indexOf('X11')!=-1) T0.CngClass('lin');
if (navigator.userAgent.indexOf('Android')!=-1) T0.CngClass('and');
if (navigator.userAgent.indexOf('iPhone OS')!=-1) T0.CngClass('ios');
if (navigator.userAgent.indexOf('iPhone')!=-1) T0.CngClass('ios');
if (navigator.userAgent.indexOf('iPad')!=-1) T0.CngClass('ios');
if (navigator.userAgent.indexOf('iPod')!=-1) T0.CngClass('ios');
if (navigator.platform.indexOf('Win64')!=-1 || navigator.userAgent.indexOf('WOW64')!=-1 ) T0.CngClass('win64');
">

В противном случае будет работать только для 64-битных браузеров под 64-битной Windows.

12
Всего: 15