在 2 javascript 个文件之间共享 var

share var between 2 javascript files

我一直在尝试找到一种方法来在不同 html 文件(js 文件不在同一个 html 文件中)使用的 js 文件之间共享变量,但我不能似乎找到了办法...

我想在 a.html 文件中的 a.js 中创建一个用户名变量,然后将其添加到服务器上的数据库后,继续 b.html 并访问用户名b.js。 (我让所有其他代码正常工作)。

我试过 session/localStorage 但 Atom(我的文本编辑器)说 'localStorage not defined',我也试过 exporting/importing/requiring 使用 emac6 但 Atom 说同样的话:'keyword export/s not defined' .有什么想法吗?

//a.html : -脚本源="src/a.js"- -/脚本-

//a.js : var 用户名 = "john";

//b.html : -脚本源="src/b.js"- -/脚本-

//b.js : console.log(用户名);

如果您从一个页面 (a.html) 导航到另一个页面 (b.html),并且您想要 share/access 数据(即用户名 = 'john')在您在每个页面上使用的两个脚本之间,那么您可能需要考虑保留该数据以实现此目的。

有很多方法可以做到这一点,但一种简单的方法是使用 localStorage API,如下所示:

a.html, src/a.js

var username = "john";
localStorage.setItem('username', username) // Persists to browser storage

b.html,src/b.js

var username = localStorage.getItem('username') // Retrieves from browser storage
console.log(username);

请注意,这取决于顺序 - a.js 必须在 b.js 之前 运行 才能存储值,然后记录到控制台。

有关localStorage API, see the MDN docs

的更多信息

您还可以使用 cookie 在任意数量的 JavaScript 之间传递变量。 从数据创建者设置 cookie :

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";

然后从别人那里读:

var x = document.cookie;