公司后台框架集成了超级多的jquery插件,如prompt弹出层,ibutton按钮,confirm弹出层,fancybox,fullcalendar,ueditor,uploader,Kissy等等,太多太多,当时拿到代码时,还是挺开心的,因为之前很少接触到,用的一般都是boostrap自带的组件,自己大概接入的就是ajaxfileupload,文件异步上传,还是那种没有预览图的(自己写的样式太烂)。但刚接触的时候是比较懵的,不知道怎么用法,只能copy之前的写法,改改内容,路径什么的。

再后来就发现了一些问题,比如说,ueditor使用上传的文字样式什么的都保存不了,ueditor在IE上上传图片弹出框显示不出来,只有白色的图层。前者是样式等一些属性被过滤了,除了ueditor本身有些规则外,后台获取字段值时也会有xss过滤规则,所以不经过xss过滤就好。后者在更新版本后,解决了(ueditor在最近的几个版本才做了针对ie的兼容)。

这次发现的问题是,prompt弹出两次会挂掉,单次点击确认或取消,图层都会正常消失,div也从dom文档中删除,但是如果连续两次prompt弹出,就会显示不正常,只出现title的一小部分,下面的内容完全看不出来。页面引入prmopt,一般是将其封装处理ajax返回值,类似于alert提示。一般点击按钮触发的是confirm,在确认操作后提交ajax,在ajax回调中调用prompt函数,告知用户处理结果。这次用户需要在确认弹出框中输入内容之后,再提交。confirm做不了,只能在prompt的message中添加input标签,但在第二次弹出时挂了。突然想到之前有过一次这样的经历,但当时应该没有想到版本问题。这次我先是尝试将第二次弹出层用confirm去做,但是confirm默认就有两个按钮,确认和取消,去除不了,硬要加上也行,但总觉得多一个取消按钮怪怪的。就去网上看看新版本是否有出路,发现官网上有一个同时弹出多个prompt的demo,下载之后,做了一个demo,没问题。

问题描述:

jq impromptu弹出框,在二次弹出时,页面显示不正常。

解决方案:

更新新版本
Version 6.2.3
Last updated on 2016-04-23

官网地址:jQuery Impromptu