- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
На странице загрузки программы есть код, меняющий CSS-класс (тем самым подбирая ссылку пакета нужной битности для ОС пользователя):
<body onload="T0=new CngClass('selected');
if (navigator.userAgent.indexOf('Windows NT 5.1')!=-1 || navigator.platform.indexOf('Win32')!=-1) T0.CngClass('win5');
if (navigator.userAgent.indexOf('Windows NT 6.0')!=-1 && navigator.platform.indexOf('Win32')!=-1) T0.CngClass('win6');
if (navigator.userAgent.indexOf('Windows NT 6.0')!=-1 && navigator.platform.indexOf('Win64')!=-1 || navigator.userAgent.indexOf('WOW64')!=-1) T0.CngClass('win6-64');
if (navigator.userAgent.indexOf('Windows NT 6.1')!=-1 && navigator.platform.indexOf('Win32')!=-1) T0.CngClass('win7');
if (navigator.userAgent.indexOf('Windows NT 6.1')!=-1 && navigator.platform.indexOf('Win64')!=-1 || navigator.userAgent.indexOf('WOW64')!=-1) T0.CngClass('win7-64');
if (navigator.userAgent.indexOf('Windows NT 6.2')!=-1 && navigator.platform.indexOf('Win32')!=-1) T0.CngClass('win8');
if (navigator.userAgent.indexOf('Windows NT 6.2')!=-1 && navigator.platform.indexOf('Win64')!=-1 || navigator.userAgent.indexOf('WOW64')!=-1) T0.CngClass('win8-64');
">
Помогите правильно расставить операторы, чтобы код работал исправно в браузерах разной битности, на всех системах.
А то захожу я под Win7 32-bit или Vista 32-bit, и проблем нет, – выдается пакет для этих систем.
Также и для Win7 64-bit и Vista 64-bit, в 32-битных браузерах, – но стоит мне только зайти в этих системах под 64-битными браузерами, то выдаётся пакет для Win8 64-бит!
Помогите наладить код. Сам я только знакомлюсь с JS, и методом тыка уже намучился пол дня, всё без результата.
P.S.
Для общей картины.
Код панели загрузки:
Код скрипта, назначающий класс "selected":
if (navigator.userAgent.indexOf('Windows NT 6.0')!=-1 && (navigator.platform.indexOf('Win64')!=-1 || navigator.userAgent.indexOf('WOW64')!=-1))скобочек попробуйте в условия добавить, а сдаётся мне там все слева-направо просто проходится и для 64-итных платформ срабатывает
|| navigator.userAgent.indexOf('WOW64')!=-1просто
скобочек попробуйте в условия добавить, а сдаётся мне там все слева-направо просто проходится и для 64-итных платформ срабатывает
На примере одной строки покажите куда скобки добавить, а то справа добавил (как в вашем примере), а слева не знаю куда :)
ЗЫ
Сдается мне, на днях начну плотно изучать JS, а то стыдно как-то становится... )
Имеются в виду приоритеты: сначала делается "и", потом "или". А последующая операция "затирает" предыдущую. То есть у Вас сначала срабатывает выбор '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');В сам код я особо не вникал, но пока вот так получается.Имеются в виду приоритеты: сначала делается "и", потом "или". А последующая операция "затирает" предыдущую. То есть у Вас сначала срабатывает выбор '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!
Попробуйте всё-таки как-то по-другому написать. Так неправильно. Не надо там ничего плюсовать.
На примере одной строки покажите куда скобки добавить, а то справа добавил (как в вашем примере), а слева не знаю куда :)
А слева и не надо. В скобки надо только выражение которым "или" (||) делается. И так во всех строках.
Попробуйте всё-таки как-то по-другому написать. Так неправильно. Не надо там ничего плюсовать.
В общем, если + заменить на ||, то опять выдаёт пакет для Win8 64-bit, то есть опять неполадки.
И скобки тоже нужны, без них не работает даже с знаком +.
Последовательность в строках и внутри строк именно такая, как я вписал, иначе не работает.
P.S.
В JS, как я уже сказал, не разбираюсь, просто молился про себя, чтобы всё заработало, и да, всё заработало. Не без вашей помощи )
Со скобками, условными операторами - можете творить на свой вкус. А вот плюс - это либо оператор сложения, либо оператор конкатенации, - его с логическими операторами не надо перемешивать, иначе результат получается труднопредсказуемый. То есть если получилось, то по стечению обстоятельств. Но такой код считается грязным.
Со скобками, условными операторами - можете творить на свой вкус. А вот плюс - это либо оператор сложения, либо оператор конкатенации, - его с логическими операторами не надо перемешивать, иначе результат получается труднопредсказуемый. То есть если получилось, то по стечению обстоятельств. Но такой код считается грязным.
Скопировал ваш пример (что без знака +), вставил для всех систем, и тоже отлично работает!
P.S.
Посоветуйте книгу, по которой обучались JS :)
Не, я не по книгам... Всё в интернете... Начинал когда-то с javascript.ru - а потом где только можно, по мере возникновения вопросов.