在html页面之间共享数据
我想从一个HTML页面发送一些数据到另一个。 我通过查询参数如http://localhost/project/index.html?status=exist
发送数据。 这种方法的问题是数据保留在URL中。 有没有其他的方法来发送使用JavaScript或jQuery的HTML页面的数据。
为什么不将值存储在HTML5存储对象(如sessionStorage
或localStorage
,请访问HTML5存储文档以获取更多详细信息。 使用它你可以在本地临时/永久地存储中间值,然后再访问你的值。
要存储会话的值:
sessionStorage.getItem('label') sessionStorage.setItem('label', 'value')
或更永久:
localStorage.getItem('label') localStorage.setItem('label', 'value')
因此,您可以使用HTML5存储对象在多个页面之间存储(临时)表单数据,在重新加载后您甚至可以保留这些数据。
我知道这是一个旧的post,但我想我会分享我的两分钱。 @Neji是正确的,你可以使用sessionStorage.getItem('label')
和sessionStorage.setItem('label', 'value')
(虽然他有setItem
参数倒退,没有什么大不了的)。 我更喜欢以下,我认为它更简洁:
var val = sessionStorage.myValue
代替getItem
和
sessionStorage.myValue = 'value'
代替setItem
。
另外,应该注意的是,为了存储JavaScript对象,必须对它们进行string化来设置它们,并进行parsing以获取它们,如下所示:
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将所有东西都存储为一个string,所以如果你只是说sessionStorage.object = myObject
你只能得到[object Object],这对你没有太大的帮助。
可能如果你只想传输数据以供JavaScript使用,那么你可以使用像这样的哈希标签
http://localhost/project/index.html#exist
所以一旦你完成回顾数据显示消息,并将window.location.hash更改为合适的值..现在,无论何时刷新页面hashtag
不会存在
注意:当你使用这个而不是查询string的时候,发送的数据不能被服务器检索/读取
那么,你实际上可以通过JavaScript发送数据 – 但是你应该知道,这是网页排名第一的来源,因为它是XSS 🙂
我个人会build议使用HTML公式,并修改服务器端的JavaScript数据。
但是如果你想在两个页面之间共享(我假设它们不在本地主机上,因为在两个后端驱动的页面之间共享是没有意义的),你将需要指定CORS头部以允许浏览器将数据发送到列入白名单的域。
这两个链接可能会帮助你,它通过Node后端显示了这个例子,但是你明白了它是如何工作的:
链接1
而且,当然,CORS规范:
链接2
〜干杯