在html页面之间共享数据

Muh*_*man 33 html javascript jquery

我想从一个HTML页面向另一个HTML页面发送一些数据.我通过查询参数发送数据,如 http://localhost/project/index.html?status=exist.此方法的问题是数据仍保留在URL中.是否有任何其他方法可以使用JavaScript或jquery跨HTML页面发送数据.

Nej*_*eji 60

为什么不将您的值存储在HTML5存储对象中,sessionStorage或者localStorage访问HTML5 Storage Doc以获取更多详细信息.使用此功能,您可以在本地临时/永久存储中间值,然后再访问您的值.

存储会话的值:

sessionStorage.getItem('label')
sessionStorage.setItem('label', 'value')
Run Code Online (Sandbox Code Playgroud)

或更永久地:

localStorage.getItem('label')
localStorage.setItem('label', 'value')
Run Code Online (Sandbox Code Playgroud)

因此,您可以使用HTML5存储对象在多个页面之间存储(临时)表单数据,您甚至可以在重新加载后保留这些对象.

  • 您还可以使用`window.name` [在多个页面中保留变量](http://stackoverflow.com/questions/1981673/persist-javascript-variables-across-pages/1981681#1981681). (6认同)

小智 17

我知道这是一个老帖子,但我想我会分享我的两分钱.@Neji是正确的,因为你可以使用sessionStorage.getItem('label'),并且sessionStorage.setItem('label', 'value')(虽然他的setItem参数倒退,没什么大不了的).我更喜欢以下内容,我认为它更简洁:

var val = sessionStorage.myValue
Run Code Online (Sandbox Code Playgroud)

代替getItem

sessionStorage.myValue = 'value'
Run Code Online (Sandbox Code Playgroud)

代替setItem.

此外,应该注意的是,为了存储JavaScript对象,必须对它们进行字符串化以设置它们,并进行解析以获取它们,如下所示:

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
Run Code Online (Sandbox Code Playgroud)

原因是sessionStorage将所有内容存储为字符串,所以如果你只是说sessionStorage.object = myObject你得到的只是[object Object],这对你没什么帮助.


Par*_*rma 5

可能如果您只想传输数据以供JavaScript使用,那么您可以使用这样的哈希标签

http://localhost/project/index.html#exist
Run Code Online (Sandbox Code Playgroud)

所以一旦你完成了重建数据显示消息并将window.location.hash更改为合适的值..现在每当你刷新页面时都hashtag不会出现
注意:当你使用这个而不是查询字符串数据时正在发送的内容无法由服务器重新读取/读取