我希望能够从一个HTML页面向另一个页面发送一些数据。 我通过查询参数发送数据,例如http://localhost/project/index.html?status=exist
。 这种方法的问题是数据保留在URL中。 是否有其他使用JavaScript或jQuery跨HTML页面发送数据的方法。
我希望能够从一个HTML页面向另一个页面发送一些数据。 我通过查询参数发送数据,例如http://localhost/project/index.html?status=exist
。 这种方法的问题是数据保留在URL中。 是否有其他使用JavaScript或jQuery跨HTML页面发送数据的方法。
为什么不将你的值存储在HTML5存储对象中,例如sessionStorage
或localStorage
,请访问HTML5 Storage Doc了解更多细节。使用这种方法,您可以在本地暂时/永久地存储中间值,然后稍后访问您的值。
要为会话存储值:
sessionStorage.setItem('label', 'value')
sessionStorage.getItem('label')
或者更加长久:
localStorage.setItem('label', 'value')
localStorage.getItem('label')
你可以使用HTML5存储对象,在多个页面之间存储(临时)表单数据,即使在重新加载页面后仍然保留。
我知道这是一个老帖子,不过我想分享我的意见。@Neji是正确的,你可以使用sessionStorage.getItem('label')
和sessionStorage.setItem('label', 'value')
(虽然他在setItem
参数上弄反了,但没关系)。我更喜欢以下方法,我觉得它更加简洁:
var val = sessionStorage.myValue
代替getItem
和
sessionStorage.myValue = 'value'
使用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
原因是sessionStorage把所有数据都存储为字符串类型,所以如果你只是简单地写sessionStorage.object = myObject
,你将得到的值是[object Object],这对你并没有太大帮助。
如果你想将数据传输给JavaScript使用,那么可以使用哈希标签进行传输,例如:
http://localhost/project/index.html#exist
当您完成检索数据后,显示消息并将window.location.hash更改为适当的值。现在,每当您刷新页面时,hashtag
将不会存在。
注意:当您使用此方法替代查询字符串时,服务器无法检索/读取发送的数据。