我们正在使用促销代码来允许用户访问网页。它不必是安全的 - 只是试图给客户一个代码提示,使他们感到特别。
所以我使用了这段代码......显然我做错了,因为浏览器在进入代码后仍然会检查代码(并最终导致页面崩溃)。我试过休息;最后,然后提示没有发生。
我很感激任何帮助。
我想做的就是摆脱无限循环。
var secret;
while (secret !== "1")
if (secret !== "2")
if (secret !== "3")
if (secret !== "4") {
secret = prompt("What is the secret password?");
};

答案 0 :(得分:4)
问题是while
与if
混合使用不当。也许你应该考虑另一种方法:
var askSecret = function askSecret() {
var secret = prompt("What is the secret password?");
if(secret !== "theSecret") { askSecret(); }
};
askSecret();

编辑:多个密码/密码
在前面的示例中,唯一有效的密码/密码是" thesecret"。如果您需要多个密码/密码,则必须使用AND &&
运算符扩展条件:
var askSecret = function askSecret() {
var secret = prompt("What is the secret password?");
if(
secret !== "theSecret"
&& secret !== "TheOtherSecret"
&& secret !== "TheThirdValidSecret"
)
{
askSecret();
}
};
askSecret();

答案 1 :(得分:1)
如果用户输入if (secret != XX)
行中的任何数字,您的代码将进入无限循环。这是因为满足while
条件,但if
条件失败,因此它跳过prompt()
函数并重复while
。由于这不会改变answer
,所以它会一遍又一遍地这样做。
如果您想检查多个可能的答案,请在while
声明中执行所有操作:
var secret;
while (secret != "1" && secret != "2" && secret != "3" && secret != "4") {
secret = prompt("What is the secret password");
}