2012-07-23 17 views
21

Deseo enviar algunos datos de una página HTML a otra. Estoy enviando los datos a través de los parámetros de consulta como http://localhost/project/index.html?status=exist. El problema con este método es que los datos permanecen en la URL. ¿Hay algún otro método para enviar los datos a través de páginas HTML usando JavaScript o jquery?Compartir datos entre páginas html

+0

Posible duplicado de [Compartir variables entre páginas html] (http://stackoverflow.com/questions/21128692/share-variables-between-html-pages) – Darshak

+0

DownVote porque hay muchas preguntas disponibles aquí relacionadas con esta pila desbordamiento – Darshak

+0

: - ¿y qué? ... todavía está en este sitio web puede obtener fácilmente que – Darshak

Respuesta

44

por qué no almacena sus valores en objetos de almacenamiento HTML5 como sessionStorage o localStorage, visite HTML5 Storage Doc para obtener más detalles. Con esto puede almacenar valores intermedios de forma temporal/permanente localmente y luego acceder a sus valores más tarde.

para almacenar valores para una sesión:

sessionStorage.getItem('label') 
sessionStorage.setItem('label', 'value') 

o más permanente:

localStorage.getItem('label') 
localStorage.setItem('label', 'value') 

para que pueda almacenar (temporalmente) los datos del formulario entre varias páginas con objetos de almacenamiento de HTML5, que incluso se puede retener después de volver a cargar ..

+5

También puede [persistir variables en varias páginas] (http://stackoverflow.com/questions/1981673/persist-javascript-variables-across- pages/1981681 # 1981681) usando 'window.name'. –

+0

no puedo entender dónde defines estas líneas? Gracias –

4

posiblemente si quieres sólo la transferencia de datos a ser utilizados por JavaScript, puede utilizar Hash Etiquetas como esto

http://localhost/project/index.html#exist 

lo que una vez cuando haya terminado retriving los datos muestran el mensaje y cambiar la ventana .location.hash a un valor adecuado .. ll ahora cada vez que se actualiza la página del hashtag no será presente
NOTA: cuando se va a utilizar este cadenas de consulta en lugar del AT que los datos sean enviados no pueden ser leídos por retrived/servidor

2

Bueno, en realidad puede enviar datos a través de JavaScript, pero debe saber que esta es la fuente de exploit # 1 en las páginas web, ya que es XSS :)

Yo personalmente sugeriría utilizar un formulario HTML en su lugar y modificar los datos de JavaScript en el lado del servidor.

Pero si quiere compartir entre dos páginas (supongo que no están ambas en localhost, porque no tiene sentido compartirlas entre dos páginas manejadas por backend) necesitará especificar los encabezados CORS para permitir que el navegador envíe datos a los dominios incluidos en la lista blanca.

Estos dos enlaces podrían ayudar, se muestra el ejemplo a través de back-end de nodo, pero usted consigue el punto como funciona:

Link 1

Y, por supuesto, la especificación CORS:

Link 2

~ Saludos

12

sé que esto es una entrada antigua, pero pensé que me gustaría compartir mi granito de arena. @Neji tiene razón en que puede usar sessionStorage.getItem('label') y sessionStorage.setItem('label', 'value') (aunque tenía los parámetros setItem al revés, no es un gran problema).Yo prefiero mucho más la siguiente, creo que es más sucinta:

var val = sessionStorage.myValue 

en lugar de getItem y

sessionStorage.myValue = 'value' 

en lugar de setItem.

Además, hay que señalar que con el fin de almacenar objetos JavaScript, deben ser Stringified establecerlos, y analiza para conseguirlos, así:

sessionStorage.myObject = JSON.stringify(myObject); //will set object to the stringified myObject 
var myObject = JSON.parse(sessionStorage.myObject); //will parse JSON string back to object 

La razón es que sessionStorage almacena todo lo una cadena, por lo que si solo dice sessionStorage.object = myObject, todo lo que obtiene es [Object Object], lo cual no lo ayuda demasiado.

Cuestiones relacionadas