Я пытаюсь предварительно заполнить некоторые поля, которые передаются из URL как пара параметров.Имея
www.example.com.com / myForm # myinput = 123
как отправка href конечным пользователям, я собираюсь предварительно заполнить поле формы "myinput"с "123" после открытия ссылки.Тем не менее, пользователи также увидят www.example.com.com/myForm#myInput=123 в своем браузере.Вот почему я хочу стереть «myInput = 123» из их URL.Причина в том, что я не хочу, чтобы мои пользователи видели или даже меняли значения в URL при заполнении формы.
Я пробовал
history.pushState (null, '', '/ modifedURL')
либо в теле HTML "onload", либоJQuery "Док готов".До сих пор я пытался, это работает только автономно без каких-либо параметров в URL, таких как "www.example.com.com/myForm", но не с дополнительными введенными параметрами.Вот упрощенная версия кода, которую я получил до сих пор. Обратите внимание, что метод modifyURL вызывается успешно, но не влияет на URL:
<head>
<meta charset="utf-8" />
</head>
<body onload="prefill();">
Your Body Content
<!-- Scripts at the bottom for improved performance. -->
<!-- jQuery, required for all responsive plugins. -->
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<form id="myForm" method="POST">
<input id="myinput" maxlength="50" name="myinput" type="text" />
<br>
<input type="submit" name="submit" />
</form>
<script>
$(document).ready(function() {
//do some code after html is loaded
});
/*
window.onload = function () {
}
*/
function prefill() {
try{
var currentURL = window.location.href;
var n = currentURL.search("#");
var sPageURL = currentURL.substring(n+1);
var urlVal = getURLVal(sPageURL);
document.forms["myForm"]["myInput"].value = urlVal;
//change URL is called, but cannot change the URL!
modifyURL();
} catch(e){
alert("error " + e);
return false;
}
return true;
}
function modifyURL() {
history.pushState(null, '', '/modifedURL');
//even alert will fire, so pushState is skipped!!
alert('URL modified');
}
function getURLVal(query) {
//parse parameter pair in url
}
</script>
</body>