Подтвердить что ты не робот

Функция истории 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 на рабочем столе, если на нем больше двух страниц.

4b9b3361

Ответ 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';