`
liss
  • 浏览: 842468 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

重写window.confirm函数

阅读更多

重写window.confirm函数为了让它能够默认选择取消按钮。

javascript中window.confirm这个方法很好用,可以弹出一个确认对话框。

 

但有一个问题是,它默认的情况下,将选中那个"确定"按钮,当用户有意无意的在键盘回车,就是说按下Enter键的时候,就会自动返回true。在很多时候其实我们不希望这样。

我们之所以弹出这个对话框,可能就是因为该操作很危险,所以要用户确认。但如果默认选择"确定",则可能违背了这个原则。

另外,confirm对话框的按钮都是固定在"确定"和"取消"这两个。可能有些时候也不是很直观。

所以,可以考虑用vbscript中的msgbox来改写这个行为。下面是一个范例


function deleteConfirm(msg)
{     
        function   window.confirm(str)  
        {  
        str=   str.replace(/\'/g,   "'&   chr(39)   &'").replace(/\r\n/g,   "'&   VBCrLf   &'");  
        execScript("n   =   msgbox('"+   str   +"',   289,   '删除框')",   "vbscript");  
        return(n   ==   1);  
        }
        return window.confirm(msg);
}

 

onclick="deleteButton_Click" />

 

关于msgbox 方法的具体细节,还可以参考下面的介绍

 

MsgBox 函数

在对话框中显示消息,等待用户单击按钮,并返回一个值指示用户单击的按钮。

MsgBox(prompt[, buttons][, title][, helpfile, context])

参数
prompt

作为消息显示在对话框中的字符串表达式。prompt 的最大长度大约是 1024 个字符,这取决于所使用的字符的宽度。如果 prompt 中包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 分隔各行。

Buttons

数值表达式,是表示指定显示按钮的数目和类型、使用的图标样式,默认按钮的标识以及消息框样式的数值的总和。有关数值,请参阅“设置”部分。如果省略,则buttons 的默认值为 0。

Title

显示在对话框标题栏中的字符串表达式。如果省略 title,则将应用程序的名称显示在标题栏中。

Helpfile

字符串表达式,用于标识为对话框提供上下文相关帮助的帮助文件。如果已提供helpfile,则必须提供 context。在 16 位系统平台上不可用。

Context

数值表达式,用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。如果已提供 context,则必须提供 helpfile。在 16 位系统平台上不可用。

设置
buttons 参数可以有以下值:

常数 值 描述
vbOKOnly 0 只显示确定按钮。
vbOKCancel 1 显示确定和取消按钮。
vbAbortRetryIgnore 2 显示放弃、重试和忽略按钮。
vbYesNoCancel 3 显示是、否和取消按钮。
vbYesNo 4 显示是和否按钮。
vbRetryCancel 5 显示重试和取消按钮。
vbCritical 16 显示临界信息图标。
vbQuestion 32 显示警告查询图标。
vbExclamation 48 显示警告消息图标。
vbInformation 64 显示信息消息图标。
vbDefaultButton1 0 第一个按钮为默认按钮。
vbDefaultButton2 256 第二个按钮为默认按钮。
vbDefaultButton3 512 第三个按钮为默认按钮。
vbDefaultButton4 768 第四个按钮为默认按钮。
vbApplicationModal 0 应用程序模式:用户必须响应消息框才能继续在当前应用程序中工作。
vbSystemModal 4096 系统模式:在用户响应消息框前,所有应用程序都被挂起。


第一组值 (0 - 5) 用于描述对话框中显示的按钮类型与数目;第二组值 (16, 32, 48, 64) 用于描述图标的样式;第三组值 (0, 256, 512) 用于确定默认按钮;而第四组值 (0, 4096) 则决定消息框的样式。在将这些数字相加以生成 buttons 参数值时,只能从每组值中取用一个数字。

返回值
MsgBox 函数有以下返回值:

常数 值 按钮
vbOK 1 确定
vbCancel 2 取消
vbAbort 3 放弃
vbRetry 4 重试
vbIgnore 5 忽略
vbYes 6 是
vbNo 7 否


说明
如果同时提供了 helpfile 和 context,则用户可以按 F1 键以查看与上下文相对应的帮助主题。

如果对话框显示取消按钮,则按 ESC 键与单击取消的效果相同。如果对话框包含帮助按钮,则有为对话框提供的上下文相关帮助。但是在单击其他按钮之前,不会返回任何值。

当MicroSoft Internet Explorer使用MsgBox函数时,任何对话框的标题总是包含"VBScript",以便于将其与标准对话框区别开来。

下面的例子演示了 MsgBox 函数的用法:

Dim MyVar
MyVar = MsgBox ("Hello World!", 65, "MsgBox Example")

分享到:
评论

相关推荐

    重写javascript中window.confirm的行为

    javascript中window.confirm这个方法很好用,可以弹出一个确认对话框我们之所以弹出这个对话框,可能就是因为该操作很危险,所以要用户确认。但如果默认选择”确定”,则可能违背了这个原则。 另外,confirm对话框的...

    Selenium处理弹出窗口.docx

    这里介绍了chooseCancelOnNextConfirmation、chooseOkOnNextConfirmation等JavaScript脚本实现的弹出窗口处理函数,selenium会弹出网页窗口,因为它重写了window.open在文件selenium-browserbot.js函数BrowserBot....

    js重写alert和confirm

    重写`confirm`,我们需要创建一个能够接收用户确认的函数。这通常涉及创建一个包含两个按钮的对话框,监听按钮点击事件: ```javascript function customConfirm(message) { const dialog = document....

    js实现弹出框

    在JavaScript编程中,"js实现弹出框"是一个常见的需求,主要是为了替代或自定义浏览器内置的`window.alert()`, `window.confirm()`和`window.prompt()`功能。这些原生的弹出框虽然简单易用,但样式固定且交互性有限...

    generator-ajax.zip

    对于重写alert和confirm,这两个函数默认是阻塞的,意味着它们会中断JavaScript执行,等待用户确认。在某些场景下,这可能不是我们期望的行为。因此,我们可以自定义这些函数,将它们包装成返回Promise的函数,然后...

    iOS移动端(H5)alert/confirm提示信息去除网址(URL)

    在iOS移动端的HTML5(H5)应用中,开发者可能会遇到一个特定的问题,即在使用`alert`或`confirm`函数进行用户交互时,系统会在提示信息上方显示当前页面的URL地址。这可能会对用户体验造成干扰,特别是对于追求简洁...

    弹出对话框

    1. JavaScript:利用JavaScript的`window.alert()`, `window.confirm()`和`window.prompt()`函数可以创建基本的弹出对话框。例如,`alert("这是一个警告!")`会显示一个带有消息的警告对话框,而`confirm("你确定要...

    JavaScript-js宝典笔学习记.txt

    let confirmed = window.confirm("Are you sure?"); ``` #### 23. 提示输入 `window.prompt();` 显示一个提示框,用户可以在其中输入信息。 ```javascript let name = window.prompt("Please enter your name:"); ...

    控制火狐的对话框

    2. **JavaScript文件**:包含处理对话框逻辑的代码,可能包括对`window.alert`、`window.prompt`和`window.confirm`的重写。 3. **安装脚本**:如果是一个Firefox扩展,会有安装和卸载的脚本,用于将扩展添加到Fire...

    面向对象的方法实现贪吃蛇

    2. 在使用××.prototype= {}重写原型对象的时候,一定要加上一句constructor:该对象。不然会造成实例化出来的实例的constructor为object。 3. 在underscore中,使用_.random(a,b)即可获得a-b中的一个随机数。 4. ...

    107 个js 基础

    使用 `window.confirm()` 方法显示确认对话框。例如: ```javascript if (confirm("Are you sure?")) { console.log("Confirmed"); } ``` ### 22. 显示提示对话框 使用 `window.prompt()` 方法显示提示对话框。...

    107个常用Javascript语句

    `window.confirm()` 用于弹出一个确认对话框,并返回一个布尔值表示用户是否确认。 ### 23. 输入对话框 `window.prompt()` 用于弹出一个对话框,提示用户输入信息。 ### 24. 设置当前窗口的 URL `window....

    107个常用javascript语句

    `window.confirm()` 用于弹出一个确认对话框,询问用户是否继续某个操作,返回布尔值表示用户的决定。 ### 23. 输入对话框 `window.prompt()` 用于弹出一个对话框,请求用户输入信息,常用于数据收集或用户交互。 ...

    JavaScript

    - `window.confirm()` - 显示一个带有确认按钮和取消按钮的对话框,并返回一个布尔值指示用户的选择。 **19. 输入对话框** - `window.prompt()` - 显示一个提示用户输入的对话框,并返回用户输入的值。 **20. ...

    js-107种.txt

    可以使用 `confirm()` 函数来显示确认对话框: ```javascript var result = confirm("Do you want to continue?"); ``` ### 23. 提示输入框 可以使用 `prompt()` 函数来显示提示输入框: ```javascript var name =...

    Qt Webkit解析html

    Qt WebKit还支持响应JavaScript的`window.alert()`、`window.confirm()`和`window.prompt()`对话框,只需重写`QWebPage`的相应方法: ```cpp class CustomWebPage : public QWebPage { Q_OBJECT public: // ... ...

    JS常用函数使用指南

    以上列出的函数是JavaScript编程中经常会用到的,但文档中提到了一些遗漏之处,比如未提及的alert()、confirm()、prompt()等函数是弹出对话框、确认框和输入提示框的标准方式。 在使用这些函数时需要注意,不要过度...

    安卓浏览器WebViewJSHTML5相关-android嵌套HTML的程序相互间传值.rar

    如果你需要处理JavaScript的alert、confirm或prompt对话框,可以重写相应的方法。 ```java webView.setWebChromeClient(new WebChromeClient() { @Override public boolean onJsAlert(WebView view, String url, ...

    2021-2022计算机二级等级考试试题及答案No.14091.docx

    在 JavaScript 中,`document.write()` 是用于向文档输出内容的函数,而 `window.write()` 并不存在;`document.confirm()` 用于弹出确认对话框,`write " "` 不是有效的输出语句。DHTML(Dynamic HTML)主要技术...

    Android webview与js交互

    现在,JavaScript可以通过`window.android.callFromJs`调用`callFromJs`方法。 三、JavaScript调用Android方法:WebViewClient和WebChromeClient 1. 使用`WebViewClient`: 我们可以通过重写`...

Global site tag (gtag.js) - Google Analytics