这是一个使用window.localStorage 在同一域上提供的两个html 页面之间传递数据的示例。由于Same-origin policy,这将不适用于不同的域。
该示例由托管在jsfiddle.net 上的两个页面组成,但您可以轻松地从本地文件系统提供这些文件。无论哪种方式,此示例都没有涉及服务器端通信。
第一页允许用户在textarea 元素中输入一些文本。有一个保存button,单击它会触发一个click event,它执行保存处理程序(anonymous function 指定为 addEventListener 的第二个属性),该处理程序获取用户输入的文本并将其保存在 localStorage 中,键为 @987654337 @
Page 1 on jsfiddle
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));
第二页从localStorage中的键mySharedData中调出保存的文本并显示在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 中,该closure 立即执行,我们将window object 传递到其中,然后我们将其作为名为@987654343@ 的变量引用。
最后,第一行是注释,但不是任何旧注释;这是jslint使用的指令;一种用于 JavaScript 软件开发的静态代码分析工具,用于检查 JavaScript 源代码是否符合 Douglas Crockford 提出的coding conventions。
替代方案是使用:
cookies,再次适用同源政策。
或
URL query-strings 这将是带您进入下一页时使用的地址的一部分,可以在 Javascript 中读取该地址以获取数据。