Javascript перестает выполняться в iframe после нажатия кнопки «Назад» в мобильном сафари - PullRequest
7 голосов
/ 01 февраля 2012

У меня есть веб-страница, предназначенная для мобильных телефонов, которая включает в себя iframe со ссылками, которые открываются в родительской цели.

В Safari на iOS 5.0.1, когда пользователь нажимает на ссылку, затем использует обратнуюЧтобы вернуться на страницу, кнопка javascript перестает выполняться в пределах iframe.

Простая демонстрация, иллюстрирующая проблему:

Нажмите на ссылку, подтвердите предупреждение и используйте кнопку возврата.При втором нажатии на ссылку предупреждение не будет отображаться.

index.html:

<html>
  <body>
    <iframe src="iframe.html"></iframe>
  </body>
</html>

iframe.html:

<html>
  <body>
    <a target="_parent" onclick="alert('Click')" href="http://www.google.com">
      Link
    </a>
  </body>
</html>

Я работаюиз идей того, что может быть причиной этого.Кто-нибудь сталкивался с этим?

Ответы [ 3 ]

2 голосов
/ 15 августа 2012

проверить ответ на Проблемы с кэшем страниц в iOS 5 Safari при переходе назад / выгрузить событие не сработало .

Ответ, который работал для меня, заключался в следующем:

<body onunload="">
...
<script type="text/javascript">
if ((/iphone|ipod|ipad.*os 5/gi).test(navigator.appVersion)) {
  window.onpageshow = function(evt) {
    // If persisted then it is in the page cache, force a reload of the page.
    if (evt.persisted) {
       document.body.style.display = "none";
       location.reload();
    }
  };
}
</script>
2 голосов
/ 27 февраля 2012

Я столкнулся с той же проблемой. Похоже, что iPad Safari делает снимки страницы, и когда вы возвращаетесь к ней с помощью кнопки «Назад», он загружает этот снимок, и код JavaScript не выполняется.

Кажется, это связано с этой проблемой: http://www.mac -forums.com / форумы / Интернет-сеть беспроводной / 257631-сафари-IPAD-обратно-кнопочным генерирует старый-info.html

Очень раздражает. Я еще не нашел решение.

...