2017-02-04 17 views
0

Я пытаюсь перенаправить пользователей ПК, которые используют adblock для определенной страницы. Но я не хочу перенаправлять мобильных пользователей.javascript redirect только пользователи ПК не мобильные

вот мой код

<script src="/assets/js/ads.js" type="text/javascript"></script> 
//the bait for adblock 

<script type="text/javascript"> 
if(document.getElementById('ElvJCLbfcHDP')){ 
    alert('Blocking Ads: No'); 
} else { 
    alert('Blocking Ads: Yes'); 
} 

, как вы можете увидеть это только шоу, если объявления будут заблокированы или not.but то, что я хочу сделать, это проверить, если пользователи приходят с мобильного телефона или компьютера, то перенаправлять только ПК adblock на определенную страницу и позволить мобильным пользователям использовать сайт как есть.

я нашел

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 
// some code.. 
} 

но, как и можно видеть только обнаруживает, если пользователи от мобильного, а затем запустить code.i хочет, чтобы проверить, если пользователь с ПК, а затем запустить перенаправлять

ответ

0

Использование ! logical not operator изменить заявление

if(!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 
// Desktop/pc 
} 
+0

позвольте мне дать ему попробовать –

1

не пытайтесь перенаправлять на основе теста на устройство .. Вы будете тратить каждый момент своего времени обновления списка и удивление почему некоторые устройства, которые находятся в вашем списке, проходят. navigator.userAgent является, как известно, ненадежным.

От MDN:

Устаревшие Эта функция была удалена из веб-стандартов. Хотя некоторые браузеры все еще могут его поддерживать, он находится в процессе удаления . Избегайте его использования и, если возможно, обновите существующий код; см. Таблицу совместимости внизу этой страницы, чтобы руководствоваться вашим решением . Имейте в виду, что эта функция может перестать работать в любое время.

Свойство NavigatorID.userAgent для чтения возвращает пользовательский агент для текущего браузера.

Спецификация просит браузеру предоставить как можно меньше информации через в этом поле. Никогда не предполагайте, что значение этого свойства останется неизменным в будущих версиях того же браузера. Не используйте , чтобы использовать его вообще, или только для текущей и прошлой версии браузера . Новые браузеры могут начать использовать тот же UA или его часть, как более старый браузер: у вас действительно нет гарантии, что агент браузера действительно тот, который рекламируется этим свойством.

Также имейте в виду, что пользователи браузера могут изменять значение этого поля, если они хотят (спуфинг UA).

Как правило, рабочий стол может быть удален из-за ширины окна (как измерено в пикселях CSS, а не аппаратных пикселях).

if(window.innerWidth > 1280){ 
    location.href = "desktop path"; 
} else { 
    location.href = "mobile path"; 
} 
+0

выглядит более reliable.but, если я хочу, чтобы получить значение первого, а затем перенаправить пользователей на основе значения из (document.getElementById («ElvJCLbfcHDP»)). если его блокировка тогда должна быть перенаправлена. извините, это мой первый раз с javascript и сделал много google.but вроде нужно исправить это как можно скорее –

+0

@NawafGantare См. Мой обновленный ответ. Он никогда не был надежным. –

+0

Я не возражаю против всех этих подделков и вещей. С его просто сценарием adblocker я просто пытаюсь закончить его как можно скорее. Вот что я пытаюсь сделать [http://pastebin.com/raw/BTkPJ4vj](http: //pastebin.com/raw/BTkPJ4vj) Я хочу проверить, присутствует ли элемент.IF да, тогда ничего не делать, а если его нет и размер экрана больше 1280, то перенаправляйте пользователей на эту страницу. пользователи ПК будут перенаправлены, а не мобильные пользователи, даже если они блокируют рекламу. Скажите, пожалуйста, помогите мне исправить код –