117

Javascript 确认弹出窗口,我想显示是,否按钮而不是确定和取消。

我使用了这个 vbscript 代码:

<script language="javascript">
    function window.confirm(str) {
        execScript('n = msgbox("' + str + '","4132")', "vbscript");
        return (n == 6);
    }
</script>

这仅适用于 IE,在 FF 和 Chrome 中,它不起作用。

是否有任何解决方法可以在 Javascript 中实现这一点?

我还想更改弹出窗口的标题,如 IE 中显示的“Windows Internet Explorer”,我想在这里显示我自己的应用程序名称。

4

9 回答 9

89

不幸的是,没有跨浏览器支持打开不是默认确定/取消对的确认对话框。您提供的解决方案使用 VBScript,它仅在 IE 中可用。

我建议使用可以构建基于 DOM 的对话框的 Javascript 库。试试 Jquery UI:http: //jqueryui.com/

于 2009-05-05T07:53:40.673 回答
18

以跨浏览器方式完成此操作的唯一方法是使用 jQuery UI 之类的框架并创建自定义对话框:

jQuery 对话框

它的工作方式与内置确认弹出窗口的工作方式不同,但您应该能够让它做您想做的事情。

于 2009-05-05T07:53:48.833 回答
8

您还可以使用http://projectshadowlight.org/jquery-easy-confirm-dialog/。它非常简单易用。只包含 jquery 通用库和一个文件:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/blitzer/jquery-ui.css" type="text/css" />
<script src="jquery.easy-confirm-dialog.js"></script>
于 2011-12-12T08:39:28.630 回答
5

您不能使用 confirm() 函数或类似函数执行此跨浏览器。我强烈建议您使用类似jQuery UI 对话框功能的东西来创建 HTML 对话框。

于 2009-05-05T07:53:51.173 回答
5

看看http://bootboxjs.com/

非常容易使用:

 bootbox.confirm("Are you sure?", function(result) {
  Example.show("Confirm result: "+result);
});
于 2014-11-21T08:40:20.720 回答
4

您可以使用的特色(但又小又简单)库是 JSDialog:js.plus/products/jsdialog

下面是一个使用“是”和“否”按钮创建对话框的示例:

JSDialog.showConfirmDialog(
    "Save document before it will be closed?\nIf you press `No` all unsaved changes will be lost.",
    function(result) {
        // check result here
    },
    "warning",
    "yes|no|cancel"
);

JS 对话框演示截图

于 2015-10-18T10:07:27.837 回答
3

你可以使用sweetalert。

导入您的 HTML:

<script src="https://cdn.jsdelivr.net/npm/sweetalert2@8"></script>

并触发警报:

Swal.fire({
  title: 'Do you want to do this?',
  text: "You won't be able to revert this!",
  type: 'warning',
  showCancelButton: true,
  confirmButtonColor: '#3085d6',
  cancelButtonColor: '#d33',
  confirmButtonText: 'Yes, Do this!',
  cancelButtonText: 'No'
}).then((result) => {
  if (result.value) {
    Swal.fire(
      'Done!',
      'This has been done.',
      'success'
    )
  }
})

欲了解更多数据,请访问sweetalert alert 网站

于 2019-09-04T12:19:18.727 回答
0

1) 您可以在您的网站上下载和上传以下文件

<link href="/Style%20Library/css/smoothness/jquery.alerts.css" type="text/css" rel="stylesheet"/> 

2)之后你可以直接使用下面的代码

$.alerts.okButton = "是"; $.alerts.cancelButton = "否";

在 document.ready 函数中。

请尝试它会工作。

谢谢

于 2015-04-09T09:59:11.080 回答
0

Sweetalert2 提供不同类型的对话框。你也可以试试这个。 https://sweetalert2.github.io/

于 2021-11-10T10:57:15.390 回答