я использую
<a href="index.php" onclick="history.back();return false;">Back</a>
для возврата назад к предыдущей ссылке на страницу. Он отлично работает в Windows (IE / Mozilla), но не работает в Safari как на Windows / Mac.
Есть ли способ заставить его работать на всех системах / браузерах (кросс-браузер / платформа)?
Если это невозможно, есть ли другой способ использования PHP и т. Д.?
это должно быть history.go(-1)
Вы должны подумать об этом так:
<a href="javascript:history.go(-1)">Back</a>
Попробуйте это вместо этого. Он должен работать через IE, FF, Safari и Chrome.
<a href="#" onclick="if(document.referrer) {window.open(document.referrer,'_self');} else {history.go(-1);} return false;">Cancel<a>
Я столкнулся с подобной проблемой на сайте электронной коммерции, который я строил для одного из моих клиентов. Сначала я пошел по маршруту:
window.history.back();
при нажатии кнопки. Я столкнулся с той же проблемой, с которой вы сталкиваетесь с проблемами перекрестной совместимости.
Чтобы ответить на ваш вопрос о
Если это невозможно, есть ли другой способ использования PHP и т. Д.?
Мое мнение заключается в том, что вы не должны вызывать метод на сервере для выполнения операции с клиентом. Это лишние накладные расходы на ваше приложение и, на мой взгляд, плохой дизайн / реализация.
Теперь, чтобы ответить на ваш главный вопрос:
Есть ли способ заставить его работать на всех системах / браузерах (кросс-браузер / платформа)?
Чтобы решить проблему, я нашел библиотеку файлов cookie клиента, созданную Mozilla ( https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie ) из другого сообщения StackOverflow (мои извинения автору – я у вас нет ссылки на ваш пост).
Используя библиотеку, я создаю файл cookie с ключом «back-url», когда пользователь переходит к части моего приложения, где я хочу, чтобы они могли вернуться:
$('#id-of-button-clicked').click(function() { docCookies.setItem("back-url", window.location.href, ".myDomain.com", "/"); });
Этот код устанавливает куки-файл с ключом-ключом 'back-url' и текущий url и делает его доступным из корневого каталога myDomain.com.
Затем, на странице, где я хочу, чтобы пользователь мог вернуться к URL-адресу, указанному в файле cookie, я вызываю следующий код:
$('#id-of-back-button').click(function() { window.location.href = docCookies.getItem('back-url'); });
Этот код устанавливает местоположение окна, получая значение «back-url».
Отказ от ответственности: я не профессиональный js-разработчик, просто пытаюсь внести два моих цента с некоторых уроков, которые я узнал.
Вызовы этого ответа: