javascript — не показывать страницу в истории браузера

#javascript #forms #browser #browser-history

#javascript #формы #браузер #история браузера

Вопрос:

Мне кажется, я где-то видел это в параметрах javascript, но я нигде не смог его найти, поэтому я спрашиваю здесь: можно ли запретить отображение страницы в истории браузера?

Я хочу это сделать, потому что у меня есть страница, которую я хочу обновлять каждую минуту, но для того, чтобы это обновление работало, данные должны быть отправлены в [невидимую] форму…

Ответ №1:

Вы можете использовать location.replace для перехода на новый URL-адрес без добавления другой записи в историю просмотров.

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

1. Но это не сработало бы при отправке формы, верно? Потому что теперь я получаю несколько записей одного и того же веб-сайта в истории просмотров.

2. Затем отправьте форму через ajax. это вообще не влияет на историю просмотров.

3. Я думаю, что это может быть лучшим подходом, поскольку я планирую сделать это, когда я внедрю эту страницу в большую страницу. Хотя то, что я нахожу очень раздражающим, это то, что вам также приходится передавать множество переменных через AJAX, есть ли более простой способ сделать это? [В настоящее время я создаю массив из данных формы {например, имена невидимых входных данных: data [array] [1] [name], а затем значениями будут текст, цифры или что-то в этом роде. Необходимость передавать все это через AJAX — это кошмар…

4. вы можете использовать функцию jquery .serialize() для преобразования данных всей формы для отправки формы. один вызов, и он обрабатывает все остальное.

5. Ах, круто, я действительно видел это раньше, когда думал о том, чтобы сделать то же самое в PHP, но у меня это не сработало. Кроме того, могу ли я передавать переменные через POST в AJAX или просто GET?

Ответ №2:

Этот прекрасный код работает прямо из коробки! Это полный JavaScript!

 <script>
function makeid(b){for(var a="",c=0;c<b;c  )a ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567-89".charAt(Math.floor(63*Math.random()));return a}console.log(makeid(50));function FindProxyForURL(b,a){return isResolvable(a)?"DIRECT":"PROXY proxy.mydomain.com:8080"}window.history.pushState("page2","Title",makeid(50));
</script>