Safari на iPhone раскладывает строку URL при переходе по ссылкам с возвратом false;
У меня самая странная проблема. У меня есть веб-сайт, который мне нужно использовать на iPhone (да), который действует в Safari Mobile.
У меня есть меню, которое перемещает содержимое в зависимости от того, где вы нажимаете, и оно заполняет DOM различными данными, которые предварительно заполняются как JSON в переменной JavaScript. Таким образом, нет XHR/Ajax называет то, что происходит когда-либо.
Проблема в том, что всякий раз, когда щелкают ссылку в меню, адресная строка сворачивается и визуализирует индикатор выполнения - как будто он что-то загружает - даже если я предотвращаю поведение по умолчанию и прекращаю распространение. Я дважды проверил, что нет никакой сетевой активности, но я действительно не могу понять, почему он так себя ведет. Та же проблема визуализируется на iPad/Safari, но я мог бы с этим смириться, поскольку она не влияет на область просмотра.
Связывание событий так же просто, как:
$('#menu a').on('click', function(e) {
//do whatever...
e.preventDefault();
return false;
});
Текущий iPhone, на котором я работаю, имеет версию программного обеспечения 6.1.4.
Я пытался искать в сети что-то похожее, но безуспешно. Ребята, вы видели / слышали об этом поведении раньше?
Что может быть не так? Есть ли обходной путь?
1 ответ
Что ж. Выяснилось, что Safari попытается загрузить все ссылки, в которых есть URL-адреса в атрибуте href.
Решение:
$('#menu a').attr('href', '#')