弹出一个层来让用户确认操作
系统
2098 0
无意间对163邮箱的层确认对话框产生了兴趣,弹出一个层来询问用户的操作,其它部分用阴影覆盖,看上去比较爽,于是决定做一个这样的样式用于公司的OA系统中。以下是JS实现代码:
Code
1
//
eTarget: 按钮ID
2
//
eArgument: 按钮事件参数,一般为''.
3
//
msgtitle: 提示信息的标题.
4
//
msgcontent:提示信息的内容.
5
//
selecttype:弹出的对话框类型.
6
//
cancelfun: 当用户点击取消按钮时要执行的客户端Javascript函数.无则传入null.
7
function
ShowMsg(eTarget,eArgument,msgtitle,msgcontent,selecttype,cancelfun)
{
8
//
有沒有__EVENTTARGET和eTarget按钮
9
if
(selecttype
>=
1
&&
(
!
document.getElementById(
"
__EVENTTARGET
"
)
||!
document.getElementById(eTarget)))
10
{
11
return
window.confirm(msgcontent);
12
}
13
var
msgw,msgh,bordercolor;
14
msgw
=
400
;
//
确认层的宽度
15
msgh
=
150
;
//
确认层的高宽度
16
titleheight
=
25
//
瓢虫的高度
17
bordercolor
=
"
#ff6600
"
;
//
边框颜色
18
titlecolor
=
"
#ff6600
"
;
//
标题颜色
19
btnborderstyle
=
"
1px solid #ff6600
"
;
//
按钮边框风格
20
btnbgcolor
=
"
#FE8433
"
;
//
按钮背景色
21
22
var
sWidth,sHeight;
23
sWidth
=
document.body.offsetWidth;
24
sHeight
=
screen.height;
25
sWidth
=
document.body.clientWidth;
26
if
(document.body.scrollWidth
>
sWidth)
{
27
sWidth
=
document.body.scrollWidth;
28
}
29
sHeight
=
document.body.clientHeight;
30
if
(document.body.scrollHeight
>
sHeight)
{
31
sHeight
=
document.body.scrollHeight;
32
}
33
var
bgObj
=
document.createElement(
"
div
"
);
34
bgObj.setAttribute(
'
id
'
,
'
bgDiv
'
);
35
bgObj.style.position
=
"
absolute
"
;
36
bgObj.style.top
=
"
0
"
;
37
bgObj.style.background
=
"
#777
"
;
38
bgObj.style.filter
=
"
alpha(opacity=30)
"
;
39
bgObj.style.MozOpacity
=
30
/
100;
40
bgObj.style.left
=
"
0
"
;
41
bgObj.style.width
=
sWidth
+
"
px
"
;
42
bgObj.style.height
=
sHeight
+
"
px
"
;
43
bgObj.style.zIndex
=
"
10000
"
;
44
document.body.appendChild(bgObj);
45
46
var
msgObj
=
document.createElement(
"
div
"
)
47
msgObj.setAttribute(
"
id
"
,
"
msgDiv
"
);
48
msgObj.setAttribute(
"
align
"
,
"
center
"
);
49
msgObj.style.background
=
"
white
"
;
50
msgObj.style.border
=
"
1px solid
"
+
bordercolor;
51
msgObj.style.position
=
"
absolute
"
;
52
msgObj.style.left
=
"
50%
"
;
53
msgObj.style.top
=
"
50%
"
;
54
msgObj.style.font
=
"
12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif
"
;
55
msgObj.style.marginLeft
=
"
-225px
"
;
56
msgObj.style.marginTop
=
-
75
+
document.documentElement.scrollTop
+
"
px
"
;
57
msgObj.style.width
=
msgw
+
"
px
"
;
58
msgObj.style.height
=
msgh
+
"
px
"
;
59
if
(selecttype
==-
1
||
selecttype
==
0
)
{
60
msgObj.style.height
=
msgh
-
50
+
"
px
"
;
61
}
62
msgObj.style.textAlign
=
"
center
"
;
63
msgObj.style.lineHeight
=
"
25px
"
;
64
msgObj.style.zIndex
=
"
10001
"
;
65
66
var
title
=
document.createElement(
"
h4
"
);
67
title.setAttribute(
"
id
"
,
"
msgTitle
"
);
68
title.style.margin
=
"
0
"
;
69
title.style.padding
=
"
3px
"
;
70
title.style.background
=
bordercolor;
71
title.style.filter
=
"
progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100);
"
;
72
title.style.opacity
=
"
0.75
"
;
73
title.style.border
=
"
1px solid
"
+
bordercolor;
74
title.style.height
=
titleheight
+
"
px
"
;
75
title.style.font
=
"
12px Verdana, Geneva, Arial, Helvetica, sans-serif
"
;
76
title.style.color
=
"
white
"
;
77
78
if
(selecttype
==-
1
)
79
{
80
title.setAttribute(
"
align
"
,
"
left
"
);
81
title.innerHTML
=
msgtitle;
82
}
83
else
if
(selecttype
==
0
)
//
add close
84
{
85
title.style.cursor
=
"
pointer
"
;
86
title.setAttribute(
"
align
"
,
"
right
"
);
87
title.innerHTML
=
"
Close
"
;
88
title.onclick
=
function
()
{
89
document.body.removeChild(bgObj);
90
document.getElementById(
"
msgDiv
"
).removeChild(title);
91
document.body.removeChild(msgObj);
92
//
取消后执行
93
if
(cancelfun
!=
null
&&
cancelfun
!=
''
)
94
{
95
cancelfun();
96
}
97
}
98
}
99
else
100
{
101
title.setAttribute(
"
align
"
,
"
left
"
);
102
title.innerHTML
=
msgtitle;
103
}
104
105
document.body.appendChild(msgObj);
106
document.getElementById(
"
msgDiv
"
).appendChild(title);
107
var
txt
=
document.createElement(
"
p
"
);
108
txt.style.margin
=
"
1em 0
"
;
109
txt.setAttribute(
"
id
"
,
"
msgTxt
"
);
110
txt.innerHTML
=
msgcontent;
111
document.getElementById(
"
msgDiv
"
).appendChild(txt);
112
113
//
add buttom
114
if
(selecttype
==
1
)
//
确定
115
{
116
//
buttom
117
var
btnok
=
document.createElement(
"
a
"
);
118
btnok.innerHTML
=
"
OK
"
;
119
btnok.style.marginTop
=
"
10px
"
;
120
btnok.style.marginBottom
=
"
5px
"
;
121
btnok.style.width
=
"
40px
"
;
122
btnok.style.height
=
"
20px
"
;
123
btnok.style.border
=
btnborderstyle;
124
btnok.style.background
=
btnbgcolor;
125
btnok.style.cursor
=
"
pointer
"
;
126
127
//
确定事件
128
btnok.onclick
=
function
()
{
129
document.getElementById(
"
msgDiv
"
).removeChild(btnok);
130
//
提交
131
var
theForm
=
document.forms[
'
form1
'
];
132
if
(
!
theForm)
{
133
theForm
=
document.form1;
134
}
135
if
(
!
theForm.onsubmit
||
(theForm.onsubmit()
!=
false
))
{
136
if
(document.getElementById(
"
__EVENTTARGET
"
))
137
{
138
theForm.__EVENTTARGET.value
=
eTarget;
139
theForm.__EVENTARGUMENT.value
=
''
;
140
theForm.submit();
141
//
服务器返回之前
142
title.innerHTML
=
"
系统提示
"
;
143
txt.innerHTML
=
"
数据处理中,请稍等...
"
;
144
msgObj.style.height
=
"
100px
"
;
145
}
146
}
147
}
148
149
document.getElementById(
"
msgDiv
"
).appendChild(btnok);
150
}
151
else
if
(selecttype
==
2
)
//
确定,取消
152
{
153
//
确定
154
var
btnok
=
document.createElement(
"
a
"
);
155
btnok.innerHTML
=
"
確定
"
;
156
btnok.style.marginTop
=
"
10px
"
;
157
btnok.style.marginBottom
=
"
5px
"
;
158
btnok.style.width
=
"
40px
"
;
159
btnok.style.height
=
"
20px
"
;
160
btnok.style.border
=
btnborderstyle;
161
btnok.style.background
=
btnbgcolor;
162
btnok.style.cursor
=
"
pointer
"
;
163
164
//
取消
165
var
btncancel
=
document.createElement(
"
a
"
);
166
btncancel.innerHTML
=
"
取消
"
;
167
btncancel.style.marginTop
=
"
10px
"
;
168
btncancel.style.marginBottom
=
"
5px
"
;
169
btncancel.style.width
=
"
40px
"
;
170
btncancel.style.height
=
"
20px
"
;
171
btncancel.style.border
=
btnborderstyle;
172
btncancel.style.background
=
btnbgcolor;
173
btncancel.style.cursor
=
"
pointer
"
;
174
btncancel.style.marginLeft
=
"
5px
"
;
175
176
//
确定事件
177
btnok.onclick
=
function
()
{
178
document.getElementById(
"
msgDiv
"
).removeChild(btnok);
179
document.getElementById(
"
msgDiv
"
).removeChild(btncancel);
180
//
提交
181
var
theForm
=
document.forms[
'
form1
'
];
182
if
(
!
theForm)
{
183
theForm
=
document.form1;
184
}
185
if
(
!
theForm.onsubmit
||
(theForm.onsubmit()
!=
false
))
{
186
if
(document.getElementById(
"
__EVENTTARGET
"
))
187
{
188
theForm.__EVENTTARGET.value
=
eTarget;
189
theForm.__EVENTARGUMENT.value
=
''
;
190
theForm.submit();
191
//
服务器返回之前
192
title.innerHTML
=
"
系统提示
"
;
193
txt.innerHTML
=
"
数据处理中,请稍等...
"
;
194
msgObj.style.height
=
"
100px
"
;
195
}
196
}
197
}
198
199
//
取消事件
200
btncancel.onclick
=
function
()
{
201
document.body.removeChild(bgObj);
202
document.getElementById(
"
msgDiv
"
).removeChild(title);
203
document.getElementById(
"
msgDiv
"
).removeChild(btnok);
204
document.getElementById(
"
msgDiv
"
).removeChild(btncancel);
205
document.body.removeChild(msgObj);
206
//
取消后执行
207
if
(cancelfun
!=
null
&&
cancelfun
!=
''
)
208
{
209
cancelfun();
210
}
211
return
false
;
212
}
213
214
document.getElementById(
"
msgDiv
"
).appendChild(btnok);
215
document.getElementById(
"
msgDiv
"
).appendChild(btncancel);
216
}
217
return
false
;
218
}
.aspx 前台调用如下:
Code
1
<
asp:Button
ID
="btnSubmit"
runat
="server"
Text
="提交"
OnClick
="btnSubmit_Click"
OnClientClick
="return ShowMsg('btnSubmit','','请你确定','你确定要提交吗?',2,null);"
/>
注意:因为JS提交到服务器需要用到
__EVENTTARGET 、__EVENTARGUMENT ,要是执行时提示
__EVENTTARGET
为空则加入一个
LinkButton
控件就可以了,如:
<asp:LinkButton ID="l" runat="server" style="display:none;" />
效果如下:
demo:
/Files/jelea/ShowDivMsg.zip
弹出一个层来让用户确认操作
更多文章、技术交流、商务合作、联系博主
微信扫码或搜索:z360901061
微信扫一扫加我为好友
QQ号联系: 360901061
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。
【本文对您有帮助就好】元