2010-09-16 32 views
6

Tengo dos páginas HTML, example1.html y example2.html.cómo intercambiar variables entre dos páginas HTML?

¿Cómo paso las variables de example1.html a example2.html usando la cadena de consulta y recupero esa variable en example2.html sin usar ningún código de servidor?

+0

Posible duplicado de [Cómo pasar el objeto javascript de una página a otra] (http://stackoverflow.com/questions/7709289/how-to-pass-javascript-object-from-one-page-to-other) – jherax

+0

Posible duplicado de [Persistir variables javascript en las páginas?] (Https://stackoverflow.com/questions/1981673/persist-javascript-variables-across-pages) – jherax

+1

Posible duplicado de [Uso de variable global en la página de recarga] (http : //stackoverflow.com/q/29986657/2247494) – jherax

Respuesta

8

En example1.html:

<a href='example2.html?myVar1=42'>a link</a> 
<a href='example2.html?myVar1=43'>another link</a> 

o generar los vínculos con Javascript si lo deseas. Solo asegúrese de que el valor de "varName =" llegue al final de example2.html de alguna manera.

Luego, en example2.html, usa Javascript para analizar la cadena de consulta con la que vino el ejemplo2.

Para hacer esto, podrías probar Querystring.

// Adapted from examples on the Querystring homepage. 
var qs = new Querystring(); 
var v1 = qs.get("myVar1"); 

Alternativamente, parent.document.URL contiene el URI completo de la página en la que se encuentra. Puede extraer eso:

parent.document.URL.substring(parent.document.URL.indexOf('?'), parent.document.URL.length); 

y analizarlo manualmente para extraer las variables codificadas en el URI.

EDITAR: Olvidé la 'nueva' parte de 'nueva Querystring()'. Vaya ...

+0

Gracias por la respuesta probé el segundo método, lo que sugeriste que funcionaba bien , he escrito como var a = parent.document.URL.substring (parent.document.URL.indexOf ('myVar1 ='), parent.document.URL.length); alerta (a); – mahesh

+0

Pero el problema es que tengo que almacenar solo 42 en la variable a, cuando escribo alerta (a); muestra myVar1 = 42, pero ¿cómo voy a mostrar solo 42 – mahesh

+0

? De un vistazo rápido (soy un principiante tratando de resolver esto también), el código de ejemplo tiene el índice de 0 justo antes del '?'. guardar el índice que encuentra en una variable. Establezca una variable de cadena al nombre de la variable para que pueda medir la propiedad de longitud. Luego, cuando llame el valor de su caso, sería var myString = "? MyVar1 ="; luego alerta (a + myString.Length); para desplazar hacia la derecha la cantidad de caracteres necesarios. – DavidG

1

Puede utilizar cookies y Querystring para intercambiar valores.

3

HTML/HTTP no tiene estado, esto significa que, lo que vio/vio en la página anterior, está completamente desconectado de la página actual. La pregunta es Cómo pasar la variable entre dos páginas en el frente. (Como HTTP no tiene estado, cada vez que cargue la página usará los valores iniciales de lo que configure en JavaScript. No puede establecer una variable global en JS y simplemente mantener ese valor después de volver a cargar la página.

Hay un par de maneras en que puede almacenar el valor en otro lugar para que pueda inicializar al cargar usando JavaScript)

1) - Simple usando almacenes frontales, que equipa cualquier navegador (cookies, almacenamiento de sesión, local El almacenamiento, que por razones de seguridad está disponible en un dominio, significa que puede guardar datos en este almacenamiento solo para un dominio, otro dominio no puede acceder a estos datos y poner valor en una página y obtener valor en otros. Teniendo en cuenta que:

Cookies guarda los datos hasta qué hora que haya determinado,

Sesión de almacenamiento guarda los datos hasta que la pestaña por defecto del navegador cerrado.

almacenamiento local guarda los datos hasta el navegador completamente cerrada y comparte datos entre las pestañas (páginas) Almacena datos sin fecha de vencimiento, y se limpia sólo a través de JavaScript, o borrar la caché del navegador/localmente almacenado de datos - a diferencia de caducidad de cookies.

2) - Añadir atributos al elemento cuando se genera a través de Ajax rendir función

<a href='example2.html?action=getAll&element=product&id=1'>a link</a> 
<a href='example2.html?action=getAll&element=product&id=2'>another link</a> 

- URL> y después haga clic en este elemento de construcción”/?action = getAll & elemento = producto & id = 1 "y en la segunda página, que ya no estará en acción, puede analizar esta URL y llamar al Ajax apropiado con los parámetros apropiados.

+0

esta es la mejor respuesta – Xin

Cuestiones relacionadas