这是一个使用window.localStorage在同一域上提供的两个 html 页面之间传递数据的示例。由于同源策略,这将不适用于不同的域。
该示例由jsfiddle.net上托管的两个页面组成,但您可以轻松地从本地文件系统提供这些文件。无论哪种方式,此示例都没有涉及服务器端通信。
第一个页面允许用户在textarea元素中输入一些文本。有一个保存按钮,单击该按钮将触发单击事件,该事件执行保存处理程序(指定为 addEventListener 的第二个属性的匿名函数),该处理程序获取用户输入的文本并将其保存在 localStorage 中mySharedData
jsfiddle 上的第 1 页
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 中
jsfiddle 上的第 2 页
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));
这两个示例都包装在一个匿名闭包中,该闭包立即执行,我们将window 对象传递到其中,然后我们将其作为名为 的变量引用global
。
最后,第一行是注释,但不是任何旧注释;这是jslint使用的指令;一种用于 JavaScript 软件开发的静态代码分析工具,用于检查 JavaScript 源代码是否符合Douglas Crockford 制定的编码约定。
替代方法是使用:
cookies,将再次适用同源政策。
或者
URL 查询字符串,它是带您进入下一页时使用的地址的一部分,可以在 Javascript 中读取以获取数据。