Tengo dos páginas html, cada una con un archivo js.
Cuando hago clic en un botón en la página 1 , debería cambiar un parámetro variable a verdadero y redirigir al usuario a la página 2 .
En la página 2 , tengo que verificar si param = true y luego continuar con mi script.
<div class="container-fluid" id="about"> <div class="row"> <div id="mainsubtitle">Page 1</div> <button id="edit" type="button">Go to page 2</button> </div> </div> var param = false; edit.addEventListener("click", switchToOpenSession); ... function switchToOpenSession() { param = true; ... } <div class="container-fluid"> <div class="row"> <div>Page 2</div> <button id="create" type="button">Create account</button> </div> </div> if (param) /* do this */ Intenté exportar/importar el parámetro pero obtuve un Unexpected token 'export' error . Probé type="module" pero no funciona. ¡Las muestras que encontré fueron dos archivos js en la misma página html!
¿Puede alguien ayudar, por favor?
no puede acceder a la variable desde una página diferente, excepto que cargue page2.html usando ajax. Forma alternativa de usar cookies o localStorage
script1.js
var param = false; edit.addEventListener("click", switchToOpenSession); ... function switchToOpenSession() { param = true; localStorage.setItem('param', true) ... } luego en script2.js
if (localStorage.getItem('param') == 'true') // note the quotespuede exportar la variable desde el primer archivo
var first; export { first }y en tu segundo archivo puedes importar esa variable
import { first} from './first.js'O
<script type="module" src='first.js'></script>No puedes compartir estados variables como ese. Estas dos páginas son instancias totalmente diferentes, por lo que el contexto no es el mismo.
Opción 1. Cuando redirige de una página a otra, puede agregar un parámetro de URL y analizarlo en la página 2.
Opción 2. Usar almacenamiento local . Supongo que tiene el mismo origen mientras habla en la página 1 y en la página 2, por lo que los datos almacenados serán visibles.