【问题标题】:I need a prompt to show just once, save a username, and use it in the rest of the site我需要一个提示,只显示一次,保存一个用户名,然后在站点的其余部分使用它
【发布时间】:2019-11-15 04:44:24
【问题描述】:

第一次发帖。 我是 Javascript 的新手,所以我可能会在这里问很多。 好吧,问题是这样的: 用户进入站点,提示询问他们的姓名,然后编辑 DOM 以显示“h3”,表示“欢迎 userX”。 但是,第一个问题是,由于 .js 文件被站点的每个文件共享,它每次都显示提示。 为了避免这种情况,我在加载主体时调用的函数中添加了代码。

var salute = function(){
    var user = prompt("Por favor ingrese su nombre", "Usuario");
        if( user==null){
        user = "Usuari@ sin nombre"
    };

    var saludo = document.getElementById("saludo");

    saludo.innerHTML= "Bienvenido " + user; 

}

但是,既然我有这个: <body onload="salute();"> 每当用户返回“主页”时,他们都会再次被要求输入其名称。 我该怎么做才能避免这种情况?还有,有没有办法在网站的另一部分使用“用户”变量?例如,在图片库中,让它说“我们希望您喜欢这张图片,用户

【问题讨论】:

  • 也许,您可以使用 cookie 存储信息并更改代码以检查 cookie 中用户名的存在。
  • localStorage。但是根据需求,您可能需要一个后端来创建会话并将响应存储在数据库中。

标签: javascript html var prompt


【解决方案1】:

如果您想保留(本地存储)用户名以供下次访问以及跨其他页面使用,那么您可以使用它,并通过额外的验证来增强它:

var salute = function() {
  var user = localStorage.getItem("user");

  if (!user) {
    user = prompt("Por favor ingrese su nombre", "Usuario");
    if (user) {
      user = localStorage.setItem("user", user);
    } else {
      user = "Usuari@ sin nombre"; //Your default one
    }
  }

  var saludo = document.getElementById("saludo");
  saludo.innerHTML = "Bienvenido " + user;

}

希望它有效!

【讨论】:

    猜你喜欢
    • 2021-04-12
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    相关资源
    最近更新 更多