下面是使用window.localStorage之间在相同的域中服务二个html页面传递数据的一个例子。由于Same-origin policy,这将不适用于不同的域。
该示例由jsfiddle.net上托管的两个页面组成,但您可以从本地文件系统轻松地提供这些文件。无论哪种方式,本示例中都没有涉及服务器端通信。
第一页允许用户在textarea元素中输入一些文本。有一个保存button,点击后火click event执行存储处理器(指定的addEventListener的第二属性anonymous function),其获取用户输入的文本,并用钥匙mySharedData
Page 1 on jsfiddle
将其保存在localStorage的
HTML
<textarea id="input"></textarea>
<div>
<button id="save">Save</button>
</div>
的Javascript
/*jslint sub: true, maxerr: 50, indent: 4, browser: true */
(function (global) {
document.getElementById("save").addEventListener("click", function() {
global.localStorage.setItem("mySharedData", document.getElementById("output").value);
}, false);
}(window));
第二页回顾从关键mySharedData
是在localStorage的,并显示在textarea的
Page 2 on jsfiddle
HTML
<textarea id="output"></textarea>
的Javascript
/*jslint sub: true, maxerr: 50, indent: 4, browser: true */
(function (global) {
document.getElementById("output").value = global.localStorage.getItem("mySharedData");
}(window));
两个例子中,保存的文本被包裹在匿名的closure这是执行立即编辑,并且我们通过window object,然后我们将其作为名称为global
的变量引用。
最后,第一行是注释,但没有任何旧评论;它是由jslint使用的指令;一个用于javascript软件开发的静态代码分析工具,用于检查JavaScript源代码是否符合Douglas Crockford制定的coding conventions。
替代办法是使用:
cookies,再次同源的政策将适用。
或
URLquery-strings这将带你到下一个页面,它可以在JavaScript中读取以获得数据时使用的地址的一部分。
重新打开。另一个只询问“使用查询字符串”,这里这个不关心如何共享变量 – 2015-12-01 16:17:56
[页面加载之间的持久变量]可能的重复(https://stackoverflow.com/questions/29986657/persist-变量之间的页面加载) – Liam 2017-12-18 15:31:34