Здравствуйте.
Столкнулся с очень странной для меня ситуацией: подключил js файл с обработчиками ajax к файлу index.html, на ПК полностью работает всё, а вот захожу с телефона и не работает. Проверял на поддержку скрипта, вставлял js-код из файла напрямую в index.html - всё работает как на телефоне, так и на ПК.
<script type="text/javascript" src="/js/obrphp.js"></script>
Это код подключения js файла, который размещен внутри <head> в index.html.
Подскажите пожалуйста, с чем может связана данная проблема?
Проблема в этом коде:
document.addEventListener('DOMContentLoaded', e => { //Поиск людей
document.querySelector('#txtsearchobch').addEventListener('keydown', function(e){
if('key' in e) {
if(e.key.toLowerCase() !== 'enter') {
return;
}
} else {
if(e.keyCode !== 13) {
return;
}
}
var txtsearchobch = $("#txtsearchobch").val();
window.location.replace('?search='+ txtsearchobch +'#searchus');
});
});
Судя по всему, проблема в использовании нового синтаксиса из стандарта ECMAScript 6, а именно - "стрелочные функции" (arrow functions):
document.addEventListener('DOMContentLoaded', e => { //Поиск людей
...
});
Лучше использовать кроссбраузерный вариант
document.addEventListener('DOMContentLoaded', function(e){ //Поиск людей
...
});
Подробную таблицу с описанием поддержки стандарта ECMAScript 6 для браузеров и платформ можно найти здесь: http://kangax.github.io/compat-table/es6/
Если хочется пользоваться именно новым синтаксисом - нужно использовать один из доступных компиляторов из ES6 в ES5 (traceur,babel).
Сборка персонального компьютера от Artline: умный выбор для современных пользователей