Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Почему неправильно работает скрипт в Опере и Хроме (https://javascript.ru/forum/dom-window/75011-pochemu-nepravilno-rabotaet-skript-v-opere-i-khrome.html)

DVV 25.08.2018 20:14

Почему неправильно работает скрипт в Опере и Хроме
 
Скрипт на проверку на использование пользователем мобильного браузера работает в IE, ЯБ и мозиле, а в Опере и Хроме показывает, что текущий браузер мобильный. В чем может быть проблема?
Самое интересное, что после первоначальной загрузки страницы в консоли во всех браузерах пишется правильно, что текущий браузер не мобильный, но в хроме и опера после перезагрузки страницы сообщение меняется на то, что браузер мобильный.

//Проверка на мобильный браузер
let mobileBrowser;

function mobileBrowserCheck() {
//Проверка на конкретный мобильный браузер
		let isMobile = {
	    Android: function() {
	        return navigator.userAgent.match(/Android/i);
	    },
	    BlackBerry: function() {
	        return navigator.userAgent.match(/BlackBerry/i);
	    },
	    iOS: function() {
	        return navigator.userAgent.match(/iPhone|iPad|iPod/i);
	    },
	    Opera: function() {
	        return navigator.userAgent.match(/Opera Mini/i);
	    },
	    Windows: function() {
	        return navigator.userAgent.match(/IEMobile/i);
	    },
	    //Проверка на любой мобильный браузер
	    any: function() {
	        return (isMobile.Android() || isMobile.BlackBerry() 
	        		|| isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
	    }
	};
//Возврат функцией true, если браузер мобильный
		if(isMobile.any()){
			mobileBrowser = true;
			console.log('Мобильный');
		} else {
			console.log('Не мобильный');
		}
};
mobileBrowserCheck();

j0hnik 26.08.2018 00:11

у меня нормально работает, версии новые.
напишите в консоле navigator.userAgent и смотрите с чем матчится строка.

DVV 26.08.2018 02:24

В хроме:
"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Mobile Safari/537.36"

В опере:
"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Mobile Safari/537.36"

Однако при первой загрузке в консоле показывает https://yadi.sk/i/1Xr42Eru3aZJ2f
А если после этого обновить, то сразу меняется на
https://yadi.sk/i/Tqo72R3Q3aZJ32
И обратно уже не возвращается. Только если вкладку закрыть и загрузить страницу заново.

DVV 26.08.2018 08:39

Все разобрался. Такое происходило, когда в инструментах разработчика у меня стоял включенным "мобильный режим", который для проверки адаптивности вверстки. Если его отключить и перезагрузить страницу снова, то все ок))


Часовой пояс GMT +3, время: 04:18.