在confirm()方法中点击'cancel'和点击'ok'效果一样

Clicking 'cancel' in confirm() method has the same result as clicking 'ok'

我是初学者,在我的 HTML 代码中实现了确认方法 - 当用户单击“x”时,他们将被重定向到主页。否则什么也不会发生。

我的问题是,在 confirm() 中,“确定”和“取消”选项都重定向到主页,我不明白为什么。

我看到很多人都有类似的问题,查了很多论坛,发现写 onclick="return confirmCancel() 而不是 onclick="confirmCancel()" 在大多数情况下都有帮助,但它并没有解决我的问题。

HTML:

<a onclick="return confirmCancel()"><img src="assets/cancel.svg"></a>

JS:

const confirmCancel = () => {
    confirm("All your progress will be lost. Are you sure you want to leave?");
    if (confirmCancel) {
        window.location.assign("index.html");
    } else {
        return false;
    }
}

你大部分都在那里..你需要检查confirm()是否为真..更改:

confirm("All your progress will be lost. Are you sure you want to leave?");
    if (confirmCancel)

var test_confirm = confirm("All your progress will be lost. Are you sure you want to leave?");
    if (test_confirm === true)

Shorthand可以

 if (confirm("All ... ... "){

尝试这样的事情。

<a onclick="pleaseConfirm"><img src="assets/cancel.svg"></a>
const pleaseConfirm = () => {
  if (confirm("All your progress will be lost. Are you sure you want to leave?")) {
    window.location.assign("index.html");
  }
}

您需要测试 confirm 的 return 值(而不是 confirmCancel 函数的真实性)。

const confirmCancel = () => {
    if (confirm("All your progress will be lost. Are you sure you want to leave?");) {
        window.location.assign("index.html");
    } else {
        return false;
    }
}

您可以在 JavaScript 中执行功能,而不是在 HTML 标签中调用 JavaScript 函数

<a id="btn-exit"><img src="assets/cancel.svg"></a>

var btnExit = document.querySelector('#btn-exit')
btnExit.addEventListener('click', () => {
  if (confirm("are you sure?")) {
    window.location.assign("index.html");
  }
})