下面是使用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