Estoy configurando un valor verificado usando localstorage.setitem y usando window.location.href para redirigir a otra página. Cuando se carga la página y trato de acceder al valor guardado usando localstorage.getitem, no funciona.
Aquí está mi código:
<input type="checkbox" name="names" onchange="submit(this)" /> function submit(element) { var names = document.getElementsByName('names'); var selectedList = []; for (var i = 0; i < names.length; i++) { if (names[i].checked == true) { window.localStorage.setItem(names[i].checked, "checked"); } } window.location.href = "/testpage.html"; } $(document).ready(function () { var names = document.getElementsByName('names'); for (var i = 0; i < names.length; i++) { if (window.localStorage.getItem(names[i].checked) == "checked") { names[i].setAttribute('checked', 'checked'); } } })Digamos que está en la página x.html y está redirigiendo a otra página desde esta página usando esta línea window.location.href = "/testpage.html"; Entonces, cualquier código escrito en javascript de x.html después de la redirección no se ejecutará, porque el contexto de ejecución de JS ahora se mueve a javascript escrito para testpage.html . Dicho esto, la solución a su problema será establecer localStorage desde x.html 's JS y cuando se redirija a testpage.html manejar la obtención de la parte localStorage allí y luego establecer los valores obtenidos de localStorage en las casillas de verificación.
Veamos un ejemplo de lo que he explicado anteriormente. Su x.html debería verse así:
function submit(element) { var names = document.getElementsByName('names'); var selectedList = []; for (var i = 0; i < names.length; i++) { if (names[i].checked == true) { window.localStorage.setItem(names[i].checked, "checked"); } } window.location.href = "/testpage.html"; } <input type="checkbox" name="names" onchange="submit(this)" /> Y javascript para testpage.html debería verse así:
$(document).ready(function () { var names = document.getElementsByName('names'); for (var i = 0; i < names.length; i++) { if (window.localStorage.getItem(names[i].checked) == "checked") { names[i].setAttribute('checked', 'checked'); } } })