Да, браузер Safari не обрабатывает кеш кнопки назад/вперёд, как в Firefox, так и в Chrome. В частности, iframe, например, видео vimeo или youtube, кэшируется, хотя есть новый iframe.src.
Я нашел три способа справиться с этим. Выберите лучшее для своего дела. Solutions протестирован на Firefox 53 и Safari 10.1
1. Обнаружить, если пользователь использует кнопку возврата/ПРЕДИСЛОВИЕ, а затем перезагрузить всю страницу или перезагрузить только кэшированные плавающие фреймы, заменив СРК
if (!!window.performance && window.performance.navigation.type === 2) {
// value 2 means "The page was accessed by navigating into the history"
console.log('Reloading');
//window.location.reload(); // reload whole page
$('iframe').attr('src', function (i, val) { return val; }); // reload only iframes
}
2. перезагружать всю страницу, если страница кэшируется
window.onpageshow = function (event) {
if (event.persisted) {
window.location.reload();
}
};
3. удалить страницу из истории, так что пользователи не могут v ISIT страница снова назад/вперед кнопки
$(function() {
//replace() does not keep the originating page in the session history,
document.location.replace("/Exercises#nocache"); // clear the last entry in the history and redirect to new url
});
возможного дубликата [Mobile Safari кнопки назад] (http://stackoverflow.com/questions/11979156/mobile-safari-back-button) –
Ответ @MikaTuupola должен быть отмечен как правильный ответ. –
Это смиренная проблема, которую я испытал из-за того же поведения BFCache в Safari: http://stackoverflow.com/questions/40727989/is-onbeforeunload-cached-on-safari-macos/40896361?noredirect=1#comment69043078_40896361 – juanmirocks