Intereting Posts

Использование javascript history.back () не работает в Safari .. как мне сделать его кросс-браузер?

я использую

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

Вызовы этого ответа:

  • Этот ответ использует файлы cookie, многим людям не нравится использование файлов cookie. Требования моих клиентов позволяют использовать файлы cookie.
  • Я не шифрую файл cookie – некоторые могут подумать об этой плохой практике. Я все еще нахожусь на ранней стадии реализации нашего развития. Однако я ограничиваю доступ к файлу cookie только внутри нашего домена.