【问题标题】:24hr password array giving syntax errors24 小时密码数组给出语法错误
【发布时间】:2021-04-07 22:07:08
【问题描述】:

我编写了一个脚本,(应该)每天使用一组密码更改密码,但我不断收到各种错误。

<script>
</script>
<form>
  <input type="text" placeholder="Username" id="text1" /><br>
  <input type="password" placeholder="Password" id="text2" /><br>
  <input type="button" class="button4" style="background-color:#9c9c9c" value="Login" onclick="javascript:validate()" />
</form>
<script type="text/javascript">
  type = "text/javascript"
  window.onload = function() {
    chgDailyImg();
  }

  function chgDailyImg() {
    var imagearray = new Array();
    imagearray[0] = "9G7DcwnWafg*EtMH";
    imagearray[1] = "MDe^5qHTG#P9dHBm";
    imagearray[2] = "h%$u@2Nfu8FL9H+R";
    imagearray[3] = "X&NB5tYdUs5u@G#z";
    imagearray[4] = "k#Rc3LGsCdu4q%qZ";
    imagearray[5] = "!$p!Ss5BA%#4zeAa";
    imagearray[6] = "qz63!tue3WCUxJ@R";

    var d = new Date(); /*** create a date object for use ***/
    var i = d.getDay();
  function validate() {
    if (document.getElementById("text1").value == "student21" &&
      document.getElementById("text2").value == imagearray[i]) {
      console.log("RIGHT")
    } else {
      console.log("WRONG")
      }
    }
  }

</script>

主要是一直说“验证”没有定义...

"&lt;a class='gotoLine' href='#41:132'&gt;41:132&lt;/a&gt; Uncaught ReferenceError: validate is not defined"

"&lt;a class='gotoLine' href='#65:49'&gt;65:49&lt;/a&gt; Uncaught ReferenceError: imagearray is not defined"

【问题讨论】:

  • 可怕的想法。任何拥有浏览器的人都可以看到这些密码。您需要将此类信息保存在安全文件夹中并使用服务器进行查询。
  • @StackSlave 我的网站很少被访问,如果是反检查元素或查看源等。
  • 无论如何都是不好的做法。

标签: javascript html jquery json browser


【解决方案1】:

您的函数 validate() 在函数 chgDailyImg() 中有一个范围。将其移到函数之外可以解决问题。

<form>
  <input type="text" placeholder="Username" id="text1" /><br>
  <input type="password" placeholder="Password" id="text2" /><br>
  <input type="button" class="button4" style="background-color:#9c9c9c" value="Login" onclick="javascript:validate()" />
</form>
<script type="text/javascript">
  window.onload = function() {
    chgDailyImg();
  }
  
  const imagearray = new Array();
        imagearray[0] = "9G7DcwnWafg*EtMH";
        imagearray[1] = "MDe^5qHTG#P9dHBm";
        imagearray[2] = "h%$u@2Nfu8FL9H+R";
        imagearray[3] = "X&NB5tYdUs5u@G#z";
        imagearray[4] = "k#Rc3LGsCdu4q%qZ";
        imagearray[5] = "!$p!Ss5BA%#4zeAa";
        imagearray[6] = "qz63!tue3WCUxJ@R";
  let i = 0;
  
  function chgDailyImg() {
    let d = new Date(); /*** create a date object for use ***/
    i = d.getDay();
  }

  function validate() {
    if (document.getElementById("text1").value == "student21" &&
      document.getElementById("text2").value == imagearray[i]) {
      console.log("RIGHT")
    } else {
      console.log("WRONG")
    }
  }
</script>

更新: 您的变量和函数的作用域存在一些问题。希望这篇文章能让你有一个更好的想法。

Scope - MDN Web Docs https://developer.mozilla.org/en-US/docs/Glossary/Scope

【讨论】:

  • 我仍然收到错误... { "message": "Uncaught ReferenceError: imagearray is not defined", "filename": "stacksnippets.net/js", "lineno": 36, "科尔诺": 49 }
  • "&lt;a class='gotoLine' href='#62:49'&gt;62:49&lt;/a&gt; Uncaught ReferenceError: imagearray is not defined"
  • 我是 javascript 的新手,这很令人困惑,你能尽力解释更多吗,我确实阅读了这篇文章,但发现所有错误实在是太多了!
  • 假设有两种 VIP 卡可以为您提供折扣。一个是针对整个商场的,你可以在任何商店的任何物品上使用它。另一种仅适用于Apple。在函数中创建变量就像您申请了一张仅限 Apple 的 VIP 卡,您只能在 Apple 商店中使用(访问)它。商场里没有其他商店会接受它。但是如果你申请了Mall (Gloabl) vip卡,你可以在包括Apple在内的任何商店使用该卡。您在原始脚本中所做的是在“Apple 商店”中创建所有内容,并尝试在其外部使用它们。
  • 这篇文章用脚本比我解释得更好。 scotch.io/tutorials/understanding-scope-in-javascript
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多