使用javascript在多个页面中获取相同的值

时间:2017-08-17 01:16:55

标签: javascript

我有多个页面,

login.html
 -a.html
 -b.html
 .
 .
 -z.html

当用户登录时,我希望所有这个页面都可以获取用户信息,如user_id和user_name。 但没有会话,我怎么能只在javascript中做到这一点?

2 个答案:

答案 0 :(得分:3)

  

有很多方法可以解决您的问题:

浏览器的Cookie

您可以使用浏览器Cookie获取特定域的数据,就像您在此W3 school page上看到的那样。一种尝试是您可以使用服务器端读取cookie

要设置Cookie浏览器,您可以执行以下操作:

var user_name = "John Doe"
var user_id = 1235456
document.cookie = "user_name=" + user_name;
document.cookie = "user_id=" + user_id;

要获取数据,您可以使用在kirlich's answer上创建的此功能:

function getCookie(name) {
    var value = "; " + document.cookie;
    var parts = value.split("; " + name + "=");
    if (parts.length == 2) return parts.pop().split(";").shift();
}

getCookie("user_name"); // => John Doe

本地存储

本地存储有区别,它只能由客户端读取。将您的数据安全地设置为Cross-site request forgery

localStorage.setItem("user_name", "John Doe");
localStorage.getItem("user_name"); // => "John Doe"

会话存储

sessionStorage对象等于localStorage对象,但它只存储一个会话的数据。当用户关闭特定浏览器选项卡时,将删除数据。

sessionStorage.username = "John Doe";
console.log(sessionStorage.username); // => "John Doe"

答案 1 :(得分:0)

使用localStorage

var userId = document.getElementById('userId').value;
localStorage.setItem('User Id', userId);

然后在每个html页面上获取用户ID:

var someVariable = localStorage.getItem('User Id');