模拟点击"确认"按钮来触发确认消息?

4

有没有办法模拟确认框上的回车键?

confirm("按下一个按钮!");创建的确认框类型。


“模拟”是什么意思?期望的行为是什么? - Ephi
1
“confirm”是一个阻塞调用,这意味着当它打开时,您的JS将停止执行。如果您希望从JS中“点击”它,则无法实现。如果您不是指通过JS,那么请澄清您的问题。 - James Thorpe
2
@Ephi 我认为他的意思是,我们能否以编程方式确认确认框...虽然这引发了一个问题,为什么要这样做? - The Dark Knight
单元测试,也许?(如果是这种情况,那么需要重新设计代码以便进行测试)。 - James Thorpe
@JamesThorpe 好的,那可能有道理。 - The Dark Knight
1个回答

9

如果是在网页中运行的JavaScript,其实不行。

标准浏览器的confirm对话框是模态和阻塞的。当它弹出时,页面上绝对不会运行任何JS代码。

你最接近的方法就是完全重写这个函数。

function yes() {
  document.body.appendChild(document.createTextNode("You said yes! "));
}

function sure() {
  if (confirm("Are you sure?")) {
    yes();
  }
}

document.querySelector("button").addEventListener("click", sure);

window.confirm = function myConfirm() {
  return true;
}
<button>Confirm</button>


谢谢,我有一种感觉答案就是那样。可惜我不能改变它,因为我运行的是一个覆盖层。 - Baldráni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接