Функция истории Javascript не работает на веб-странице, обслуживаемой с рабочего стола на iOS 6
Я видел некоторые другие сообщения о новых действиях iOS 6 с веб-сайтами, сохраненными в/запущенном из главного экрана. На iOS 5 (и ранее) мы смогли использовать функцию Javascript History для нашей кнопки входа в приложение. Однако в iOS 6 он работает, если вы только на одной странице сайта. Но если у вас более одной страницы, которую вы посетили, она выдает ошибку, не найденную на странице. Он отлично работает в Safari (не на рабочем столе), и он работает, если я удаляю тег <meta name="apple-mobile-web-app-capable" content="yes" />
. Но тогда я получаю уродливый браузер Chrome, которого я пытаюсь избежать.
Я видел похожие сообщения об изменениях в iOS 6, которые больше не используют данные с Safari, но я надеялся, что кто-то столкнулся с аналогичной проблемой, когда информация о истории хранится/используется для главной версии приложений в iOS 6.
Мы используем этот вызов: <a href="javascript:history.back();" class="back"></a>
Опять же, он отлично работает в Safari, отлично во всех старых операционных системах. Но он не работает на iOS 6 на рабочем столе, если на нем больше двух страниц.
Ответы
Ответ 1
Я понимаю, что если вы добавите тег apple-mobile-web-app-able - он кэширует страницу, помещенную на закладке на главный экран.
Любые последующие запросы после запуска закладки заставят браузер Safari запускать URL-адрес (с добавлением уродливого хром).
Вы можете выполнить базовую проверку ошибок - если есть история:
function GoBack() {
if(history.length) {
history.back();
return false;
}
return true; //follow the regular link
}
И вы действительно должны указывать правильные значения href для своих URL:
<a href="http://your_standard_url" class="back" onClick="GoBack()"></a>
Ответ 2
Попробуйте
onclick="history.go(-1)"
- Эта простая команда должна работать.
Ответ 3
Попробуйте один из них
window.history.pushState
http://thelink.is/history-api-ios-bug
ИЛИ
window.history.pushState(данные, заголовок, 'a/new/url #');
ИЛИ
window.history.pushState(данные, заголовок, 'a/new/url');
window.location.hash = 'new';