Ответ 1
он должен быть history.go(-1)
Я использую
<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-разработчик, просто пытаюсь внести свои два цента с некоторых уроков, которые я узнал.
Вызовы этого ответа: