我想替换Magento的alert()和Confirm()对话框的实现。虽然alert()的替换很简单,但是我不确定如何处理confirm()对话框。有没有办法防止JavaScript在返回函数之前继续运行?这是否需要循环而可能导致浏览器崩溃?
因此,例如,我需要替换如下代码:
<form action="" method="POST">
<input type="submit" onclick="return confirm('Are you sure?');" value="Delete">
</form>
与...
<form action="" method="POST">
<input type="submit" onclick="return myCustomConfirm('Are you sure?');" value="Delete">
</form>
或其他方案,例如:
<script>
var delete = confirm('Are you sure?');
if (delete) {
doSomething();
}
</script>
与...
<script>
var delete = myCustomConfirm('Are you sure?');
if (delete) {
doSomething();
}
</script>
在这两种情况下,myCustomConfirm()都将打开Bootstrap模式,用户必须单击“确定”,“取消”或关闭模式。如果“确定”,则该值返回true,否则返回false。
我不想进行回调,因为这将导致超出预期的重构。这可以用另一种方式吗?
谢谢!
这不可能。您不能编写阻止执行,收集用户输入并根据用户输入返回值的JavaScript函数。阻止执行并等待用户输入的唯一方法是使用confirm
。
如果要使用自定义对话框,则必须重构代码以使用回调。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句