找到一个不错的消息提示组件 ymPrompt V4.0

摘要:
找到一个好的消息提示组件并与您的朋友共享。本文转载于ymPrompt V4.0并发布。本文引用了它的演示。为了实现更好的界面效果和控制,仿真系统的消息提示框和弹出窗口实现了该组件。外观可以通过css完全控制。组件调用方法1:调用方法ymPrompt的示例。警报('http://www.qq.com',null,null,'您确定要提交吗?',Null,Null,Null,handler)ymPrompt。confirmInfoymPrompt。winymPrompt。winComponent调用方法2:示例源代码ymPrompt。警报({message:'http://www.qq.com',slideShowHide:false,title:'您确定要提交吗?

找到一个不错的消息提示组件,分享给朋友们,本文转载于ymPrompt V4.0版本发布【2009-03-02更新】,本文是参考它的demo。非常感谢原作者:

ymPrompt消息提示组件4.0版使用简介
更换皮肤:  修改默认配置:拖动窗体的透明度: 遮罩颜色: 遮罩透明度: 
在web开发中,对于浏览器默认的消息提示框(如alert,confirm等)外观无法控制,同时我们经常希望能实现一些window.open之类的弹出框,但window.open弹出框存在诸多问题,如可能被拦截,界面不美观等。
为了实现更好的界面效果和控制,于是模拟系统的消息提示框及弹出窗口实现了该组件。在外观上可以通过css进行完全的控制。

组件调用方式1(传统参数传入方式):
示例调用方法
ymPrompt.alert('http://www.qq.com',null,null,'确认要提交吗?',handler)
ymPrompt.succeedInfo(find('txt').innerHTML,400,260,null,handler2)
ymPrompt.errorInfo('操作失败!',null,null,null,handler)
ymPrompt.confirmInfo('信息确认框功能测试',null,null,null,handler)
ymPrompt.win('<div class=\'myContent\'>普通弹出窗口</div>',300,200,'普通弹窗测试')
ymPrompt.win('http://www.163.com',500,300,'网易官方网站',handler,null,null,{id:'a'})
组件调用方式2(JSON方式):
示例源码
ymPrompt.alert({message:'http://www.qq.com',slideShowHide:false,title:'确认要提交吗?',handler:handler})
ymPrompt.succeedInfo({message:find('txt').innerHTML,400,height:260,handler:handler2})
ymPrompt.errorInfo({message:'操作失败!',handler:handler})
ymPrompt.confirmInfo({message:'信息确认框功能测试',handler:handler})
ymPrompt.win({message:'普通弹出窗口',300,height:200,msgCls:'myContent',title:'普通弹窗测试'})
ymPrompt.win({message:'http://www.163.com',500,height:300,title:'网易官方网站',handler:handler,maxBtn:true,minBtn:true,iframe:true})
其他使用方式演示:
示例源码
ymPrompt.alert()
ymPrompt.alert('消息内容')
ymPrompt.alert({title:'我的标题',message:'我的内容'})
ymPrompt.win({title:'iframe模式',fixPosition:true,maxBtn:true,minBtn:true,iframe:{id:'myId',name:'myName',src:'http://www.baidu.com'}})
ymPrompt.alert({title:'fixPosition使用演示',message:'我不会随滚动条一起滚动',fixPosition:false})
ymPrompt.alert({title:'dragOut使用演示',message:'我可以拖出到窗口可见区域以外',dragOut:true})
ymPrompt.alert({title:'autoClose使用演示',message:'程序控制关闭',autoClose:false,handler:autoClose})
ymPrompt.win({message:'<br><center>无标题栏</center>',handler:noTitlebar,btn:[['关闭我']],titleBar:false})
ymPrompt.win({message:'<br><center>无关闭按钮</center>',btn: ['OK'],closeBtn:false})
ymPrompt.alert({message:'不显示遮罩',title:'不显示遮罩',showMask:false})
ymPrompt.alert({message:'右下角弹出',title:'右下角弹出',winPos:'rb'})
ymPrompt.alert({message:'自定义弹出位置',title:'右下角弹出',winPos:[200,1000]})
ymPrompt.win({message:'自定义按钮',title:'自定义按钮测试',handler:testHd,btn:[['是','yes'],['否','no'],['取消','cancel']]})
ymPrompt.alert({message:'拖动窗体时的透明度为0.5',title:'自定义按钮测试',winAlpha:0.5})
ymPrompt.alert({message:'显示窗体阴影',title:'显示阴影',showShadow:true})
ymPrompt.alert({message:'窗体淡入淡出',title:'淡入淡出',useSlide:true,handler:slideHd})
ymPrompt.alert({message:'自定义淡入淡出',title:'淡入淡出',useSlide:true,slideCfg:{increment:0.1,interval:100},handler:slideHd})
ymPrompt.alert({message:'显示最大化最小化按钮',title:'最大化最小化',minBtn:true,maxBtn:true})
ymPrompt.win({message:'自定义内容样式',title:'自定义内容样式',msgCls:'customCls'})
ymPrompt.alert({message:'允许在消息框中使用右键',title:'允许右键',allowRightMenu:true})
ymPrompt.alert({message:'允许选择消息框中内容',title:'允许选择',allowSelect:true})
ymPrompt.confirmInfo({icoCls:'',msgCls:'confirm',message:'请输入您的姓名:<br><input type='text' onfocus='this.select()' />',title:'请输入您的名字',height:150,handler:getInput,autoClose:false})" />
组件方式及属性调用演示:
示例源码
ymPrompt.win('<div class=fmt>版本号:'+ymPrompt.version+'<br>发布日期:'+ymPrompt.pubDate+'<br>组件当前配置信息:'+json2str(ymPrompt.cfg)+'</div>',250,500)
ymPrompt.win({message:'iframe.html',500,height:300,title:'getPage测试',handler:handlerIframe,autoClose:false,iframe:true})
ymPrompt.alert({message:'一秒钟后我的大小改为[400,300]',height:200,250});
setTimeout(function(){ymPrompt.resizeWin(400,300)},1000);
ymPrompt.alert({message:'两秒钟后自动点击确定按钮',handler:handler});
setTimeout(function(){ymPrompt.doHandler('ok')},1000);
ymPrompt.alert({message:'点击确定显示按钮的内容',autoClose:false,btn:[['是','yes'],['否','no']],handler:getButtons})
ymPrompt.alert({message:'悬浮右下角,模拟qq',fixPosition:true,winPos:'rb',showMask:false})
ymPrompt.alert({message:'窗口状态控制',400,autoClose:false,btn:[['最大化','max'],['最小化','min'],['正常态','normal'],['关闭','close']],handler:stateHd})
en();ymPrompt.alert({message:'英文化成功'})
cn();ymPrompt.alert({message:'中文化成功'})

调用方法及参数说明

  1. 在页面中引入ymPrompt.js。如:<script type="text/javascript" src="http://t.zoukankan.com/ymPrompt.js"></script>
  2. 在页面中引入对应的皮肤文件的CSS,如:<link rel="stylesheet" type="text/css" href="http://t.zoukankan.com/skin/qq/ymPrompt.css" />
  3. 自定义组件的默认配置信息(此步骤可选,该方法可以在任意时间调用)
    页面的js中通过ymPrompt.setDefaultCfg(cfg)方法修改组件部分或全部的默认属性。
    如:ymPrompt.setDefaultCfg({maskAlpha:0.2,maskAlphaColor:'#00f'})

    组件的默认配置(对于没有设定的项将采用该配置项的默认值):
    {
       message: '内容', //消息框按钮
       300, //宽
       height: 185, //高
       title: '标题', //消息框标题
       handler: function() {}, //回调事件
       maskAlphaColor: '#000', //遮罩透明色
       maskAlpha: 0.1, //遮罩透明度

       iframe: false, //iframe模式
       icoCls: '', //图标的样式
       btn: null, //按钮配置
       autoClose: true, //点击关闭、确定等按钮后自动关闭
       fixPosition: true, //随滚动条滚动
       dragOut: false, //不允许拖出窗体范围
       titleBar: true, //显示标题栏
       showMask: true, //显示遮罩
       winPos: 'c', //在页面中间显示
       winAlpha:0.8, //拖动窗体时窗体的透明度
       closeBtn:true, //是否显示关闭按钮
       showShadow:false, //不显示阴影,只对IE有效
       useSlide:false, //不使用淡入淡出
       slideCfg:{increment:0.3,interval:50}, //淡入淡出配置

       //按钮文本,可通过自定义这些属性实现本地化
       closeTxt: '关闭',
       okTxt:' 确 定 ',
       cancelTxt:' 取 消 ',
       msgCls:'ym-content' //消息内容的样式
       minBtn:false, //不显示最小化按钮
       minTxt:'最小化',
       maxBtn:false, //不显示最大化按钮
       maxTxt:'最大化'
       allowSelect:false, //是否允许选择消息框内容,默认不允许
       allowRightMenu:false //是否允许在消息框使用右键,默认不允许
    }
  4. 根据您的需要调用相应的消息函数(两种参数传入方式):
    • ymPrompt.alert(参数) //消息提示类型
    • ymPrompt.succeedInfo(参数) //成功信息类型
    • ymPrompt.errorInfo(参数) //错误信息类型
    • ymPrompt.confirmInfo(参数) //询问消息类型

    • ymPrompt.win(参数) //自定义窗口类型

    参数传入方式包含两种:
    • 第一种即传统的参数传入,按照顺序传入相应的参数值即可(一定要按照顺序),对于不需要设定的值请传入null。如ymPrompt.alert('内容',null,null,'标题')
      参数顺序上面的默认配置中参数顺序一致

    • (推荐)第二种即JSON的传入方式,需要指定字段名,没有顺序,根据需要设定相关属性。如ymPrompt.alert({title:'标题',message:'内容'})

    五个方法的参数意义完全相同(所有参数均为可选,不传入则使用默认参数值),具体含义如下:
    • message:消息组件要显示的内容,默认为“内容”。
    • width:消息框的宽度,默认为300。
    • height:消息框的高度,默认为185。
    • title:消息组件标题,默认为“标题”
    • handler:回调函数。当确定/取消/关闭按钮被点击时会触发该函数并传入点击的按钮标识。如ok代表确定,cancel代表取消,close代表关闭
    • maskAlphaColor:遮罩的颜色,默认为黑色。
    • maskAlpha:遮罩的透明度,默认为0.1。

    • fixPosition:设定是否弹出框随滚动条一起浮动,保持在屏幕的固定位置,默认为true
    • dragOut:设定是否允许拖出屏幕范围,默认为false。
    • autoClose:设定用户点击窗口中按钮后自动关闭窗口,默认为true(设定为false后程序中可以通过调用close方法关闭)。
    • titleBar:是否显示标题栏,默认显示。注意,如果没有标题栏需要自己在程序中控制关闭。
    • showMask:是否显示遮罩层,默认为true
    • winPos:弹出窗口的位置,支持8种内置位置(c,l,t,r,b,lt,rt,lb,rb)及自定义窗口坐标,默认为c。
        各参数意义:c:页面中间,l:页面左侧,t:页面顶部,r:页面右侧,b:页面顶部,lt:左上角,rt:右上角,lb:左下角,rb:右下角
    • winAlpha:弹出窗体拖动时的透明度,默认为0.8

      //以下三个参数主要用于win方法(当然你也可以通过设定这些覆盖前面四个消息类型的默认属性)。
    • iframe:是否使用iframe方法加载内容,该属性如果为true或者object,组件则尝试将message内容作为url进行加载(如果属性值为一个object,则将object的内容添加为iframe的属性,如iframe:{id:'myId',name:'myName',src:'http://www.baidu.com'}则iframe的id为myId,name为myName,src为http://www.baidu.com)。默认为false。
    • icoCls:图标类型。传入的内容为className,具体写法可以参考ymprompt.css中对图标的定义方式。默认为空。
    • btn:按钮定义。传入的是数组形式。每个按钮的格式为['按钮文本','按钮标识'],
      如[['确定','ok'],['取消','cancel'],['关闭','close']]等。
      注意单个按钮应该是这样的:[['确定','ok']]
    • closeBtn:是否显示关闭按钮,默认为true(显示)。

    • showShadow:是否启用弹出框阴影效果(IE Only),默认为false
    • useSlide:f是否启用弹出框的渐显渐隐效果,默认为false
    • slideCfg:渐变效果的配置信息,参数格式为object,属性包括incerment:透明度每次增加的值,interval:变化的速度。例如:{incerment:0.3,interval:50}。该参数仅在useSlide为true时有效

      //以下参数可用于对组件语言本地化,如用于英文等系统中
    • okTxt:确定按钮的文本描述,默认为“确定”
    • cancelTxt:取消按钮的文本描述,默认为“取消”
    • closeTxt:关闭按钮的文本描述(鼠标放在关闭按钮上时显示),默认为“关闭”
    • minTxt:最小化按钮的文本描述,默认为“最小化”
    • maxTxt:最大化按钮的文本描述,默认为“最大化”

    • minBtn:是否显示最小化按钮,默认为false
    • maxBtn:是否显示最大化按钮,默认为false

    • allowSelect:是否允许选择消息框内容,默认为false
    • allowRightMenu:是否允许在消息框中使用右键,默认为false
  5. 操作接口:

    属性:
    version:当前版本号 如:alert(ymPrompt.version)
    pubDate:当前版本的发布日期 如:alert(ymPrompt.pubDate);
       cfg:组件的当前的默认配置
    方法:
    setDefaultCfg(cfg):设定组件的默认属性,设定后的所有弹出均默认采用cfg中的设置。
    如:ymPrompt.setDefaultCfg({maskAlpha:0.2,maskAlphaColor:'#00f'}); //设定遮罩层颜色为蓝色,透明度0.2

    getPage():在iframe窗口模式下,获取到iframe的dom对象。
    如:alert(ymPrompt.getPage().contentWindow.document.body.outerHTML); //获取iframe页面的html内容

    resizeWin(w,h):通过程序动态修改窗口的大小。参数:w:宽度,h:高度
    如:ymPrompt.resizeWin(400,300); //修改弹出框宽度为400px,高度为300px

    doHandler(sign,autoClose):模拟触发某个按钮的点击事件。参数sign:传给回调函数的标识,autoClose:是否自动关闭窗口(默认采用全局配置)
    如:ymPrompt.doHandler('ok',false); //触发确定按钮的点击事件,并且执行完回调函数后不关闭窗口

    getButtons():获取当前弹出窗口的所有按钮对象,返回结果是一个对象集合(数组)。
    如:var btnID=ymPrompt.getButtons()[0].id; //获取第一个按钮的id

    close():关闭当前弹出的窗口 如:ymPrompt.close()

    max():最大化弹出窗口。

    min():最小化弹出窗口

    normal():窗口普通弹出状态
  6. 其他说明:如果觉得“对象.方法”的调用方式比较麻烦,可以采用如下方式简化调用:
    在调用之前设定var Alert=ymPrompt.alert。之后就可以使用Alert()的方式进行调用。

Best Regards,

Charles Chen

免责声明:文章转载自《找到一个不错的消息提示组件 ymPrompt V4.0》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何打开dwg文件性能测试三十一:监控之工具监控下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

netty作为基础通信组件

阿里分布式服务框架 Dubbo 的 RPC 框架使用 Dubbo 协议进行节点间通信,Dubbo 协议默认使用 Netty 作为基础通信组件,用于实现各进程节点之间的内部通信。其中,服务提供者和服务消费者之间,服务提供者、服务消费者和性能统计节点之间使用 Netty 进行异步/同步通信。     除了 Dubbo 之外,淘宝的消息中间件 RocketMQ...

深入详解美团点评CAT跨语言服务监控(一) CAT简介与部署

  前言: CAT是一个实时和接近全量的监控系统,它侧重于对Java应用的监控,除了与点评RPC组件融合的很好之外,他将会能与Spring、MyBatis、Dubbo 等框架以及Log4j 等结合,支持PHP、C++、Go等多语言应用,基本接入了美团点评上海侧所有核心应用。目前在中间件(MVC、RPC、数据库、缓存等)框架中得到广泛应用,为美团点评各业务线...

MQ中将消息发送至远程队列的配置

MQ中将消息发送至远程队列的配置 摘自MQ资源管理器帮助文档V7 在开始学习本教程之前,您需要从系统管理员处了解标识网络上接收机器的名称:IP地址、MQ的端口号、队列管理器、接收(远程机器)或者是发送的队列(本地机器)名称。 消息传递如图示:   本教程介绍了如何设置一台计算机上的队列管理器 QM_ORANGE 与另一台计算机上的队列管理器 QM_APP...

[ PyQt入门教程 ] PyQt5基本控件使用:消息弹出、用户输入、文件/目录选择对话框

本文主要介绍PyQt界面实现中常用的消息弹出对话框、提供用户输入的输入框、打开文件获取文件/目录路径的文件对话框。学习这三种控件前,先想一下它们使用的主要场景: 1、消息弹出对话框。程序遇到问题需要退出需要弹出错误提示框 、程序执行可能造成的风险需要弹出警告窗口提示用户是否进一步执行等等。 2、用户输入框。比如常见的让用户选择执行的程序分支、yes/no等...

[Win10应用开发] 如何使用Windows通知

消息通知,是一个应用中必不可少的组成部分。Win10下提供了多种消息通知机制,Toast通知只是其中一种。这篇博文和大家分享一下,如何使用Toast通知。 上图是一个基本的Toast通知,那我们该如何使用它呢?首先大家要知道,Toast 通知是由XML构建的。在Toast通知中提供消息内容及操作(比如回复,取消等)都是在XML中定义。 <toast...

无法启动链接服务器"XXX DB Link"的 OLE DB 访问接口 "SQLNCLI11" 的嵌套事务。由于 XACT_ABORT 选项已设置为 OFF,因此必须使用嵌套事务。链接服务器"XXX DB Link"的 OLE DB 访问接口 "SQLNCLI11" 返回了消息"无法在此会话中启动更多的事务"。

无法启动链接服务器"XXX DB Link"的 OLE DB 访问接口 "SQLNCLI11" 的嵌套事务。由于 XACT_ABORT 选项已设置为 OFF,因此必须使用嵌套事务。链接服务器"XXX DB Link"的 OLE DB 访问接口 "SQLNCLI11" 返回了消息"无法在此会话中启动更多的事务"。 【以上问题待解决】 临时解决方案:暂时先避免...