加强的alert confirm js自定义对话框 多个按钮 ICO自定义

效果图:

<html>
<head>
    
<title>对话框</title>
    
<link rel="stylesheet" type="text/css" href="/modules/commons/css/dialog.css">
    
<script src="/modules/commons/js/prototype.js"></script>
    
<script src="/modules/commons/js/dialog.js"></script>
</head>
<body>
    
<div id="Contain">
        
<div id="ICO" style="position:absolute; left:0px; top:5px;"></div>
        
<div id="Message"></div>
        
<div id="Buttons"></div>
    
</div>
</body>
<script>
Event.observe(window, 'load', 
function(){
    
//check base config and parameter
    var objIn = window.dialogArguments
    
var arrBt =  ['确定:1', '取消:0']
    
if(objIn){
        
if(objIn.ArrBt){
            arrBt 
= objIn.ArrBt
        }

        
if(objIn.Message){
            $('Message').innerHTML 
= objIn.Message
        }

    }
else{
        alert('tell me what u want to let user to confirm or alert information')
        
return
    }

    
    
//ico
    var ICO = $('ICO')
    
var img = document.createElement('img')
    
if(objIn.ICO){
        img.src 
= objIn.ICO
    }
else{
        img.src 
= Dialog.Alert
    }

    ICO.appendChild(img)
    
    
//button
    var Buttons = $('Buttons')
    arrBt.each(
function(bt){
        
var input = document.createElement('input')
        input.type 
= 'button'
        
var arr = bt.split(':')
        input.value 
= arr[0]
        input.returnValue 
= arr[1]
        input.onclick 
= ClickBt
        Buttons.appendChild(input)
    }
)
}
false)
function ClickBt(){
    window.returnValue 
= this.returnValue
    window.close()
}

</script>
</html>
调用方法的封装
/*
    2007-01-18 lisq custom dialog
    use age:
    <script src="/modules/commons/js/dialog.js"></script>
    var objIn = {
        Message : 'your message',
        ArrBt : ['保存:1', '不保存:2', '取消:3']
    }
    var objOut = Dialog.Show(objIn)
    if(objOut == 1){
        save it
    }else if(objOut == 2){
        not save it
    }else if(objOut == 3){
        u click cancle
    }
*/

var Dialog = {
    Show : 
function(objIn){
        
var url = '/Commons/Dialog.do'
        
var style = 'dialogHeight:110px; dialogWidth:250px; edge:Raised; scroll:no; center:Yes; help:No; resizable:no; status:no;'
        
return window.showModalDialog(url, objIn, style)
    }
,
    Alert : '
/modules/commons/images/alert.png',
    Confirm : '
/modules/commons/images/confirm.png',
    Error : '
/modules/commons/images/error.gif.png'
}
posted @ 2007-01-18 13:08 布尔 阅读(2630) 评论(16)  编辑 收藏

  回复  引用    
#1楼 2007-03-24 10:58 | ronglj [未注册用户]
不错!!
  回复  引用  查看    
#2楼 [楼主]2007-03-24 17:38 | 布尔      
@ronglj
谢谢关注,需要的时候常来看看,也许有更多发现哦
  回复  引用    
#3楼 2007-03-25 16:59 | alex.day [未注册用户]
为什么要用弹出窗口,为什么不用DIV来做模态窗口。
瞧瞧这个
http://www.subimage.com/dhtml/subModal/
http://sublog.subimage.com/articles/2007/01/12/submodal-v1-4
  回复  引用  查看    
#4楼 2007-03-28 16:50 | 野猪&翔帅      
哇~~~
这里好绿啊..
  回复  引用  查看    
#5楼 2007-04-17 09:49 | 仰天一笑      
不错
  回复  引用    
#6楼 2007-06-07 11:31 | 燃烧 [未注册用户]
顶顶顶顶顶顶
  回复  引用    
#7楼 2007-06-07 11:31 | 燃烧 [未注册用户]
好,很好,写的很好,顶~~~
  回复  引用  查看    
#8楼 [楼主]2007-06-07 22:54 | 布尔      
比较简单,谢谢喜欢
  回复  引用    
#9楼 2007-08-09 19:19 | WE [未注册用户]
prototype.js
dialog.js
文件呢
  回复  引用  查看    
#10楼 [楼主]2007-08-09 20:45 | 布尔      
@WE
dialog.js中就一个dialog对象,至于prototype.js自己去找最新版本吧,我写的时候才1.4,现在已经1.51了
  回复  引用    
#11楼 2007-10-17 23:28 | 不会用 [未注册用户]
不会用啊,把你的那个文件拷下来之后不知道怎么用了,能教教具体怎么用吗?
  回复  引用    
#12楼 2007-11-29 12:06 | 北京的木鱼 [未注册用户]
dialog.js 没有这个怎么做也是有问题。所以是不是作者自己留了一手。不让人看到啊。
  回复  引用    
#13楼 2008-01-04 10:59 | 寒虫露草2 [未注册用户]
比较难看
  回复  引用    
#14楼 2008-02-05 13:21 | song_gongda [未注册用户]
学习
  回复  引用    
#15楼 2008-04-28 18:49 | 七月七 [未注册用户]
能发源代码分享一下吗?baltjf_12212@sina.com
  回复  引用  查看    
#16楼 [楼主]2008-05-05 18:03 | 布尔      
源代码已经在文档中了,只是没有图片而已。

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: