js重写confirm框(js提示框confirm)

本文目录一览:

js 重写系统confirm方法,不改变使用方式。

1、confirm属于特殊的模态窗口,执行这些语句会阻塞浏览器 Javascript 代码的运行。也就是说,在这句中 var a = confirm( “OK?” ) ;执行了 confirm( “OK?” ) 弹出一个确认框后,javascript 就不再执行,等到点完按钮、返回一个值后,才能完成赋值语句的执行。想要模拟这个功能,除非能弹出另外一个模态窗口,否则只用 普通的蒙版和 div 层是做不到阻塞 Javascript 的执行的。修改方法改成:function Confirm(msg,callback_OK,callback_CANCEL) { btnok.onclick = function(){ if(callback_OK typeof callback_OK == “function”) callback_OK( true ); close();//你应该有这个功能吧? } btncancel.onclick = function(){ if(callback_CANCEL typeof callback_CANCEL== “function”) callback_CANCEL( false ); close();//你应该有这个功能吧? }}这样的话,如果想执行类似这样的功能:if(confirm( “OK?” )){ okHandlerCode();}else{ cancelHandlerCode();}Confirm( “OK?” , okHandlerCode , cancelHandlerCode );利用这种方式,就解决了确认对话框的返回值接收的问题:js 重写系统confirm方法,不改变使用方式。

重写confirm返回值的问题

原生的confirm是通过线程阻塞达到这种目的,而在js里面无法达到这种效果,请弄清楚“同步”“异步”的概念。因此你这个思路是走不通的,函数调用完毕之时,你自定义的弹出框仅仅刚显示出来。但是你采用回掉的思路是正确的。

myCovered.style.display = “block”;之后追加以下代码

document.getElementById(“_c_true”).onclick = okCallBack;

document.getElementById(“_c_false”).onclick = cancelCallBack;

就可以实现确认和取消的回调。

js重写confirm 如何实现,自己写了个只是模拟出了效果,但是只要一调用就会返回false,求助

alert、confirm等都属于特殊的模态窗口,执行这些语句会阻塞浏览器 Javascript 代码的运行。也就是说,在这句中 

var a  = confirm( “OK?” ) ;

执行了 confirm( “OK?” )  弹出一个确认框后,javascript 就不再执行,直到你点完按钮、返回一个值后,才能完成赋值语句的执行。

而你想要模拟这个功能,除非能弹出另外一个模态窗口,否则只用 普通的蒙版和 div 层是做不到阻塞 Javascript 的执行的。

这也是你的代码返回 false 的原因:你的 confirm 在执行饭后,立即就返回了 false ,没等按钮被点击,Javascript 已经完成了赋值语句并继续下面的工作了。

有个建议,把你的方法改成:

function Confirm(msg,callback_OK,callback_CANCEL) { 

    btnok.onclick = function(){

        if(callback_OK  typeof callback_OK == “function”)

            callback_OK( true );

        close();//你应该有这个功能吧?

    }

    btncancel.onclick = function(){

        if(callback_CANCEL  typeof callback_CANCEL== “function”)

            callback_CANCEL( false );

        close();//你应该有这个功能吧? 

    }

}

这样的话,你如果想执行类似这样的功能:

if(confirm( “OK?” )){

    okHandlerCode();

}else{

    cancelHandlerCode();

}

就可以写成

Confirm( “OK?” , okHandlerCode  , cancelHandlerCode );

利用这种方式,就解决了确认对话框的返回值接收的问题:

参数的语义表达的很清楚,okHandlerCode  内接收和处理确认框为 true 情形,cancelHandlerCode 则相反。

这只是一个思路。

用js(最好jQuery) 重写confirm方法【js高手请进】

$.confirm = function(msg,func1,func2,w,h) { Confirm(msg,func1,func2,w,h); };

function Confirm(msg,func1,func2,w,h){

var opts = {css:{width:w?w:300,height:h?h:120}};

//这里还可以判断msg的长度进行排版,并调整弹出框的大小

install(window.top, opts);

$.DialogData.dialogDiv.find(“div[id^=’_DialogButtons_’]”).css(‘text-align’,’center’)

var win = topWin.$.DialogData.iframeObj.attr(‘contentWindow’);

var doc = win.document;

doc.open();

doc.write(“body/body”) ;

var arr = [];

arr.push(“divtable height=’100%’ border=’0′ align=’center’ cellpadding=’10’ cellspacing=’0′”);

arr.push(“trtd align=’center’img id=’Icon’ src=’../images/icon_query.gif’ width=’34’ height=’34’ align=’absmiddle’/td”);

arr.push(“td align=’left’ id=’Message’ style=’font-size:9pt'”+msg+”/td/tr/table/div”);

var div = $(arr.join(”),doc.body);

$(doc.body).append(div);

doc.close();

//设置响应函数

//如果传递响应函数则执行,否则仅关闭窗口

$.DialogData.dialogDiv.find(“input[id^=’_ButtonOK_’]”).bind(“click”, function() {

$.unfunkyUI();

if(func1){

func1();

}

})

$.DialogData.dialogDiv.find(“input[id^=’_ButtonCancel_’]”).bind(“click”, function() {

if(func2){

func2();

}

}) ;

}

})(jQuery);

如何用javaScript修改comfirm提示框中按钮上的文字

没办法设置,那个文本是系统设定的,你用不同的操作系统可能会有所差别。 你要设置,你就用弹出层的方法。模拟出那样的一个效果。

下面这个方法可以将按钮替换为“是”,“否”的形式,只支持IE

script language=javascript

function window.confirm(str)

{

execScript(“n = (msgbox(‘”+str+”‘,vbYesNo, ‘提示’)=vbYes)”, “vbscript”);

return(n);

}

alert(confirm(“重载的confirm弹出框”));

/script

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/302740.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-31 11:48
下一篇 2024-12-31 11:48

相关推荐

  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • 如何解决WPS保存提示会导致宏不可用的问题

    如果您使用过WPS,可能会碰到在保存的时候提示“文件中含有宏,保存将导致宏不可用”的问题。这个问题是因为WPS在默认情况下不允许保存带有宏的文件,为了解决这个问题,本篇文章将从多个…

    编程 2025-04-29
  • 解析js base64并转成unit

    本文将从多个方面详细介绍js中如何解析base64编码并转成unit格式。 一、base64编码解析 在JavaScript中解析base64编码可以使用atob()函数,它会将b…

    编程 2025-04-29
  • Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的解决方法

    本文将解决Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的问题。同时,给出一些相关示例代码,以帮助读者更好的理解并处理这个问题。 一、问题解…

    编程 2025-04-29
  • 金融阅读器提示配置文件无法识别

    在使用金融阅读器过程中,有时会遇到提示配置文件无法识别的情况。这种情况通常是由于配置文件中存在错误或不完整所导致的。本文将从多个方面对此问题进行详细的阐述,并提供相应解决方法。 一…

    编程 2025-04-28
  • t3.js:一个全能的JavaScript动态文本替换工具

    t3.js是一个非常流行的JavaScript动态文本替换工具,它是一个轻量级库,能够很容易地实现文本内容的递增、递减、替换、切换以及其他各种操作。在本文中,我们将从多个方面探讨t…

    编程 2025-04-28
  • JS图片沿着SVG路径移动实现方法

    本文将为大家详细介绍如何使用JS实现图片沿着SVG路径移动的效果,包括路径制作、路径效果、以及实现代码等内容。 一、路径制作 路径的制作,我们需要使用到SVG,SVG是可缩放矢量图…

    编程 2025-04-27
  • 如何使用JS调用Python脚本

    本文将详细介绍通过JS调用Python脚本的方法,包括使用Node.js、Python shell、child_process等三种方法,以及在Web应用中的应用。 一、使用Nod…

    编程 2025-04-27
  • 如何反混淆美团slider.js

    本文将从多个方面详细阐述如何反混淆美团slider.js。在开始之前,需要明确的是,混淆是一种保护JavaScript代码的方法,其目的是使代码难以理解和修改。因此,在进行反混淆操…

    编程 2025-04-27
  • Python要学JS吗?

    Python和JavaScript都是非常受欢迎的编程语言。然而,你可能会问,既然我已经学了Python,是不是也需要学一下JS呢?在本文中,我们将围绕这个问题进行讨论,并从多个角…

    编程 2025-04-27

发表回复

登录后才能评论