использовать историю javascript, чтобы отменить последовательные клики на той же странице - PullRequest
0 голосов
/ 28 февраля 2020

Итак, я НЕ Фронтенд, пожалуйста, потерпите меня ...

У меня есть страницы, где вы отправляете формы (целевые и текущие URL-адреса идентичны) несколько раз, прежде чем вы захотите ' т go вернуться на предыдущую страницу. Способ обработки отправлений заключается в том, что форма публикуется, а затем пользователь перенаправляется, чтобы повторная загрузка не повторно отправляла (POST) форму - я не уверен, является ли это оптимальным подходом для достижения this ..

Проблема в том, что это приведет только к тому, что пользователь вернется на ту же страницу, если, например,. форма на странице A была отправлена ​​дважды, история будет иметь:

  1. страница A (текущая)
  2. страница A (отправить, получив перенаправление)
  3. страница A (предыдущая загрузка)
  4. страница A (отправка, получение перенаправления)
  5. страница A (исходная загрузка)
  6. предыдущая страница

сейчас Я бы хотел, чтобы кнопка «Назад» вернула пользователя на предыдущую страницу (# 6), и для этого я предполагаю, что мне нужно будет ввести код на каждой странице (по крайней мере, с формами), который:

  1. проверяет, имеет ли реферал тот же URL-адрес, что и текущий, и, если да, делает history.popState
  2. при отправке любой формы, проверяет, идентичны ли целевой и текущий URL-адреса истории .popState

Это разумная стратегия или есть лучший способ добиться этого?

1 Ответ

0 голосов
/ 28 февраля 2020

Html

<a href="index.html" 
onclick="handleClick(this);">Click</a>

Javascript

 const handleClick = (e) =>{
       locaiton.replace(e.href);
       return false;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...