2010-09-16 18 views
6

Ho due pagine HTML, example1.html e example2.html.come scambiare le variabili tra due pagine HTML?

Come passare le variabili da example1.html a example2.html utilizzando la stringa di query e recuperare tale variabile in example2.html senza utilizzare alcun codice serveride?

+0

Possibile duplicato di [Come passare l'oggetto javascript da una pagina all'altra] (http://stackoverflow.com/questions/7709289/how-to-pass-javascript-object-from-one-page-to-other) – jherax

+0

Possibile duplicato di [Persist variabili javascript tra le pagine?] (Https://stackoverflow.com/questions/1981673/persist-javascript-variables-across-pages) – jherax

+1

Possibile duplicato di [Uso di variabili globali nella pagina di ricarica] (http : //stackoverflow.com/q/29986657/2247494) – jherax

risposta

8

In example1.html:

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

o generare i legami con Javascript, se lo desideri. Assicurati che il valore? VarName = arrivi alla fine di example2.html in qualche modo.

Quindi, in example2.html, si utilizza Javascript per analizzare la stringa di query fornita da example2.

Per fare ciò, è possibile provare Querystring.

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

In alternativa, parent.document.URL contiene l'URI completo per la pagina attiva. È possibile estrarre:

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

e analizzarlo manualmente per estrarre le variabili codificate nell'URI.

MODIFICA: ha dimenticato la "nuova" parte di "nuova Querystring()". Oops ...

+0

Grazie per la risposta ho provato il secondo metodo quello che hai suggerito funziona bene , ho scritto come var a = parent.document.URL.substring (parent.document.URL.indexOf ('myVar1 ='), parent.document.URL.length); Avviso (a); – mahesh

+0

Ma il problema è che devo memorizzare solo 42 nella variabile a, quando scrivo alert (a); visualizza myVar1 = 42, ma come visualizzerò solo 42 – mahesh

+0

Da una rapida occhiata (sono un principiante che cerca di capire anche questo), il codice di esempio ha l'indice di 0 è appena prima del '?'. salva l'indice che trova in una variabile. Imposta una variabile stringa sul nome della variabile in modo da poter misurare la proprietà length. Quindi quando si chiama il valore del tuo caso sarebbe var myString = "? MyVar1 ="; quindi alert (a + myString.Length); per spostare a destra il numero di caratteri necessari. – DavidG

1

È possibile utilizzare cookie e Querystring per scambiare valori.

3

HTML/HTTP è senza stato, questo significa che, ciò che hai fatto/visto nella pagina precedente, è completamente disconnesso con la pagina corrente. La domanda è Come passare una variabile tra due pagine nel front-end. (Dato che HTTP è senza stato, ogni volta che carichi la pagina userà i valori iniziali di qualunque cosa tu abbia impostato in JavaScript.Non puoi impostare una variabile globale in JS e semplicemente mantenere quel valore dopo aver caricato di nuovo la pagina

Ci sono un paio di modi per memorizzare il valore in un altro posto in modo da poterlo inizializzare caricando usando JavaScript)

1) - Semplice utilizzando Front End Storages, che equipaggia qualsiasi Browser (Cookie, Archiviazione sessione, Locale Archiviazione - che per ragioni di sicurezza è disponibile in tutto un dominio -> significa che puoi salvare i dati su questa memoria solo per un dominio, un altro dominio non può accedere a questi dati) e mettere valore in una pagina e ottenere valore in altri. Considerando che:

cookie salva i dati fino a che ora si è determinato,

Archiviazione sessione salva i dati fino a quando la scheda predefinita del browser chiuso.

Local Storage salva i dati fino Browser dati azioni completamente chiuso e tra le schede (pagine) Memorizza i dati senza data di scadenza, e viene cancellato solo tramite JavaScript, o deselezionando la cache del browser/memorizzato a livello locale dei dati - a differenza dei cookie di scadenza.

2) - Aggiungere attributi per l'elemento quando ha generato tramite Ajax rendere funzione

<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> 

-> e dopo click questo elemento costrutto “URL /?action = getAll & element = product & id = 1 "e nella seconda pagina che andrà via azione è possibile analizzare questo URL e chiamare l'Ajax appropriato con i parametri appropriati.

+0

questa è la migliore risposta – Xin