Javascript 不允许关闭提示

Javascript 不允许关闭提示,javascript,Javascript,有没有办法阻止用户关闭Javascript中给出的提示 我试着测试变量是否为null,但这似乎不起作用,或者我无法找出它,因为一旦关闭,我假设它不会到达我的条件语句。有没有办法禁用提示消息中的关闭选项 我试图让用户在提示消息框中输入响应。我主要是一名C开发人员,正在学习JS。我不知道如何在JS中测试这个。请原谅我有点困惑 有什么帮助吗?谢谢大家的阅读 我的代码: var login = prompt("Who is this?"); if((login.toUpperCase()) !== "

有没有办法阻止用户关闭Javascript中给出的提示

我试着测试变量是否为null,但这似乎不起作用,或者我无法找出它,因为一旦关闭,我假设它不会到达我的条件语句。有没有办法禁用提示消息中的关闭选项

我试图让用户在提示消息框中输入响应。我主要是一名C开发人员,正在学习JS。我不知道如何在JS中测试这个。请原谅我有点困惑

有什么帮助吗?谢谢大家的阅读

我的代码:

var login = prompt("Who is this?");

if((login.toUpperCase()) !== "password" || (login === null)) {
alert("BEGIN SHUTDOWN","ERROR");
window.close();
} else {
alert("Access Granted.");
}
检查空值。如果再次看到null提示符或显示允许用户在方便时继续的消息

诸如prompt和alert之类的原生情态动词相当粗糙。如果它足够重要,你可以考虑自己使用或使用一个库。

例如:


您可以检查空字符串,然后再次创建提示。见下例:

var msg = prompt("Write something here:");
while(msg === "" || msg === null)
{
    //prompt again
}

当用户单击“确定”且未在框中输入任何内容时,会出现空字符串。当用户单击“取消”时,会出现Null。

如果用户关闭对话框,则登录为Null

如果login.toUpperCase!==密码| | login===null{将首先计算login.toUpperCase,但由于login为null,它将引发异常:

未捕获的TypeError:无法读取null的属性“toUpperCase”

您需要先测试login==null:


如果要创建阻止关闭的提示,请不要使用javascript警报功能。请使用模式。它基本上是一个提示,是页面的一部分。

“有没有办法阻止用户关闭javascript中给出的提示?”我当然希望没有!那太可怕了!您可以在d然后从那里继续,但是没有办法禁用取消/关闭选项。[…]我尝试测试变量是否为null,但似乎不起作用[…]您是如何尝试的,为什么您认为这不起作用?只是一个有趣的细节:if login.toUpperCase!==密码将始终为真。@Ashton在最后一条注释中提到了未来的问题。否决票很可能是因为您的问题缺少代码。更重要的是,在您发布代码之前,大多数问题都是这样的没有针对您的实际错误。它们不一定是错误的,但不能帮助您理解您的尝试不起作用的原因。因此,尽管避免了否决票,您应该始终显示您当前尝试快速获取答案的最小示例。如果用户取消提示,则返回null,而不是。也就是说,可能值得使用c检查是否存在任何无效值。如果用户单击“确定”且框中没有任何内容,则返回。是的,但问题是当用户关闭提示而不输入任何内容时会发生什么。请尝试此操作,但单击“不让此网站显示任何提示”框..我敢说我在上面添加了我的简单代码示例-我的null测试不起作用。有什么问题吗想法为什么?谢谢你看到我的代码示例。你的代码不起作用,因为如果login为null,login.toUpperCase将抛出一个错误。首先检查null,然后用lazy或| | |来登录。我明白了。这是因为JS被认为是活动的,并且在运行之前不会首先求值吗?很抱歉,如果这是一个糟糕的措辞,我习惯于用C和Java进行面向对象编程。我不是这样用于前端的东西!@Ashton在数据可用之前,它应该如何评估条件?任何其他语言也会有同样的问题。这就是它在测试if之前会得到空响应的原因。仅仅因为它是第二个条件,就不应该意味着任何东西,至少在java或c中,从我看到的情况来看不是这样n因为这是一个OR语句。顺便说一句,你的答案是正确的。谢谢你,我只是发表评论来尝试学习。谢谢你!@Ashton好吧,这取决于语言中OR表达式的求值顺序。在JS中,左侧先求值,然后选择右侧。因此,对于任何其他语言,你都需要在第一个测试中进行测试js中的求值表达式是左边的,如果对象/值为null login==null,并且只有当它的求值为false,如果它不是null,那么js中的OR的第二个语句是求值的。但是正如我所说的,在其他语言中这是相同的,只有OR表达式的求值顺序可能会被翻转。
document.getElementById("start").addEventListener("click", function () {
  document.getElementById("start-container").style.display = "none";
  do_prompt();
});

function do_prompt() {
  var input;
  input = prompt("Enter something");
  if (input === null) {
    document.getElementById("continue-container").style.display = "";
  } else {
    // we have a value, continue your program here
    alert("Thank you");
  }
}

document.getElementById("continue").addEventListener("click", function () {
  do_prompt();
});
var msg = prompt("Write something here:");
while(msg === "" || msg === null)
{
    //prompt again
}
if ( (login === null) || (login.toUpperCase()) !== "password") {