我想将一些数据从一个 HTML 页面发送到另一个页面。我通过查询参数发送数据,如 http://localhost/project/index.html?status=exist
. 这种方法的问题是数据保留在 URL 中。是否有任何其他方法可以使用 JavaScript 或 jquery 在 HTML 页面之间发送数据。
4 回答
为什么不将值存储在 HTML5 存储对象中,例如sessionStorage
或localStorage
,请访问HTML5 存储文档以获取更多详细信息。使用它,您可以在本地临时/永久存储中间值,然后稍后访问您的值。
要存储会话的值:
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
不会出现
注意:当你将使用它而不是查询字符串数据时服务器无法检索/读取正在发送的内容