поведение history.go(-1) в разных браузерах

#javascript #cross-browser

#javascript #межбраузерный

Вопрос:

history.go(-1); Ведет себя одинаково во всех браузерах? Я вижу разное поведение в разных браузерах.

Мой код содержит строку, похожую на javascript:history.go(-1);

У меня есть три флажка на первой странице. Пользователю разрешено выбирать только два из них. Если я выберу все три и нажму отправить, то на следующей странице я использую javascript:history.go (-1); используя кнопку с сообщением об ошибке, что разрешены только два варианта. В safari, когда я возвращаюсь на первую страницу, я вижу, что все три флажка установлены, но в firefox установлены только два из них. Chrome, подтвердите повторную отправку формы сообщением, чтобы обновить страницу

Комментарии:

1. было бы неплохо, если бы вы могли указать на найденную вами разницу.

2. Нажмите ссылку «Редактировать» в вашем вопросе и обновите ее. Вопросы и ответы здесь «эволюционируют».

3. Да, я считаю, что они разные. Но также решением было бы выполнить проверку флажков перед отправкой. итак, в теге формы добавьте onSubmit=»return validate()», где validate вернет false, если есть ошибки, и может их отобразить, или true, если он может перейти к следующему шагу, вместо того, чтобы полагаться на history.go(-1).

Ответ №1:

Нет, браузеры могут действовать по-разному на histroy.go . То, как вы взаимодействовали с браузером раньше history.go , может иметь разные эффекты при его вызове. Создать кроссбраузерный javascript довольно сложно, но исправить проблему с историей должно быть довольно просто. Я ответил на ваш единственный вопрос: «Это правда?». Вероятно, вы хотите знать, как устранить проблему, и это специфично для вашего кода.

Комментарии:

1. это не ответ, лучше добавить его в качестве комментария.

2. Это отвечает на единственный вопрос, который был задан Does history.go(-1); behaves same in all browsers? . Планировал обновление, когда он добавил вопрос.