我需要提示仅显示一次,保存用户名,并在网站的其余部分中使用它

问题描述 投票:-2回答:2

第一篇文章。我真的是Java语言的新手,所以我可能会在这里问很多问题。好吧,问题是这样的:用户进入站点,提示询问他们的名称,然后编辑DOM以显示“ h3”,并显示“ Welcome 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();">每当用户返回“家”时,都会再次要求其名称。如何避免这种情况?还有,还有一种方法可以在网站的另一部分使用“ user”变量吗?例如,在图片库中,说“我们希望您喜欢这些图片,用户

javascript html var prompt
2个回答
0
投票

首先,仅在使用脚本的页面上包括脚本。

如果出于某种不可能的原因,您需要将该文件包含在任何地方,那么您需要一种方法来确定要在哪个页面上运行,从而知道是否可以运行该脚本。

一种解决方案是在要运行它的页面上向主体或某个标签添加一个类或id,然后仅在当前页面上找到该类时才执行函数功能。

同样,这确实不是很好的体系结构,但这是一个示例:

function salute(e) {
  if(document.querySelector('#home')) {
    console.log('hi');
  }
};
<html>
<body id="home" onload="salute();">
</body>
</html>

0
投票

如果您要保留(本地存储)下次访问以及其他页面用户名,则可以使用该用户名,并通过其他验证对其进行增强:

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;

}

希望它起作用!

© www.soinside.com 2019 - 2024. All rights reserved.