目录 |
XNJS提供的对话框JS代码库,供开发者完成对话框的各种操作。
XNJS的Dialog对象提供了三种类型的对话框:
|
对话框类型 |
描述 |
|
Dialog.DIALOG_ALERT |
用于提示用户某一事件的发生,只有一个按钮,是window.alert()的友好表现形式。 |
|
Dialog.DIALOG_CONFIRM |
用于让用户选择接受或拒绝某个事件,有两个选择按钮,是window.confirm()的友好表现形式。 |
|
Dialog.DIALOG_PANEL |
开发者可以自由定制的对话框。凡是前两种对话框都不能满足的需求,都可以通过定制这种对话框来实现期望的效果。本文提到的众多的对话框定制函数只对于这种类型的对话框才可用。 |
以上代表对话框类型的三个常量,在创建对话框时作为第一个参数传入对话框构造函数。如果省略这一参数,则默认创建的是DIALOG_CONFIRM类型的对话框。
下面分别是三种类型对话框的截图(都使用缺省配置)。

ALERT对话框的构造函数有两种传参方式:第一种方式按照顺序接受一系列配置参数;第二种方式将各种配置参数作为一个对象的属性传入,因此没有顺序的要求,使用更灵活。另外,第二种传参方式还可以比第一种方式传入更多的参数。
第一种传参方式:
new Dialog(dialog_type, message[,title,type,X,Y,width,height,callBack]);
|
参数名 |
类型 |
描述 |
是否可选 |
默认值 |
|
dialog_type |
Number |
对话框类型,值必须是Dialog.DIALOG_ALERT。 |
必选。若该参数省略,则创建的是CONFIRM对话框。 |
n/a |
|---|---|---|---|---|
|
message |
String |
要显示的消息内容 |
必选 |
n/a |
|
title |
String |
提示框的标题 |
可选,不需要可以传null |
'提示' |
|
type |
String |
提示类型,可以是'normal'默认样式或'error'错误提示样式 |
可选,不需要可以传null |
'normal' |
|
X |
Number |
提示框位置的横坐标 |
可选,不需要可以传null |
默认居中 |
|
Y |
Number |
提示框位置的纵坐标 |
可选,不需要可以传null |
距离窗口上边框200px |
|
width |
Number |
提示框的宽度 |
可选,不需要可以传null |
400px |
|
height |
Number |
提示框的高度 |
可选,不需要可以传null |
默认自动伸展 |
|
callBack |
Function |
当点击确定时执行的动作 |
可选 |
默认为空 |
第二种传参方式:
new Dialog(dialog_type, parameters);
|
参数名 |
类型 |
描述 |
是否可选 |
默认值 |
|
dialog_type |
Number |
对话框类型,值必须是Dialog.DIALOG_ALERT。 |
必选。若该参数省略,则创建的是CONFIRM对话框。 |
n/a |
|---|---|---|---|---|
|
parameters |
Object |
参数以parameters对象的属性传入。除了第一种方式列出的参数之外,还可以传入一些额外的参数,如:按钮文字、noHeader、noFooter、autoHide。具体参见下面的parameters对象属性列表。 |
必选 |
n/a |
parameters参数对象属性列表:
|
属性名 |
类型 |
描述 |
默认值 |
|
message |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
title |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
type |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
X |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
Y |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
width |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
height |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
callBack |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
button |
String |
按钮文字 |
'确定' |
|
noHeader |
Boolean |
是否不显示标题 |
false |
|
noFooter |
Boolean |
是否不显示底部内容(包括按钮) |
false |
|
autoHide |
Number |
自动关闭提示框的秒数 |
默认不自动关闭 |
<script type="text/javascript">
<!--
function alert_callback() {
//当用户点击确定时执行这里的代码
}
var alert_dialog = new Dialog(Dialog.DIALOG_ALERT, '这里是提示信息', '提示框标题', null, null, null, null,
null, alert_callback);
//下面是等效的代码
var alert_dialog = new Dialog(Dialog.DIALOG_ALERT,
{
callBack: alert_callback,
message: '这里是提示信息',
title: '提示框标题'
}
);
//-->
</script>
CONFIRM对话框的构造函数同样有两种传参方式。
第一种传参方式:
new Dialog([dialog_type,] message[,title,callBack,yes,no,X,Y,width,height]);
|
参数名 |
类型 |
描述 |
是否可选 |
默认值 |
|
dialog_type |
Number |
对话框类型,值必须是Dialog.DIALOG_CONFIRM。 |
可选。该参数对CONFIRM对话框可以省略。 |
Dialog.DIALOG_CONFIRM |
|---|---|---|---|---|
|
message |
String |
要显示的消息内容 |
必选 |
n/a |
|
title |
String |
提示框的标题 |
可选,不需要可以传null |
'提示' |
|
callBack |
Function |
当点击确定时执行的动作 |
可选 |
默认为空 |
|
yes |
String |
yes按钮显示的文字 |
可选,不需要可以传null |
'确定' |
|
no |
String |
no按钮显示的文字 |
可选,不需要可以传null |
'取消' |
|
X |
Number |
提示框位置的横坐标 |
可选,不需要可以传null |
默认居中 |
|
Y |
Number |
提示框位置的纵坐标 |
可选,不需要可以传null |
距离窗口上边框200px |
|
width |
Number |
提示框的宽度 |
可选,不需要可以传null |
400px |
|
height |
Number |
提示框的高度 |
可选,不需要可以传null |
默认自动伸展 |
第二种传参方式:
new Dialog([dialog_type,] parameters);
|
参数名 |
类型 |
描述 |
是否可选 |
默认值 |
|
dialog_type |
Number |
对话框类型,值必须是Dialog.DIALOG_CONFIRM。 |
可选。该参数对CONFIRM对话框可以省略。 |
Dialog.DIALOG_CONFIRM |
|---|---|---|---|---|
|
parameters |
Object |
参数以parameters对象的属性传入。具体参见下面的parameters对象属性列表。 |
必选 |
n/a |
parameters参数对象属性列表:
|
属性名 |
类型 |
描述 |
默认值 |
|
message |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
title |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
callBack |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
yes |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
no |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
X |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
Y |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
width |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
height |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
<script type="text/javascript">
<!--
function confirm_callback(confirm) {
if (confirm) {
//用户点击了'确定'按钮
}
else {
//用户点击了'取消'按钮
}
}
var confirm_dialog = new Dialog(Dialog.DIALOG_CONFIRM, '提示信息:选确定还是取消?', '提示框标题',
confirm_callback);
//下面是等效的代码
var confirm_dialog = new Dialog(Dialog.DIALOG_CONFIRM,
{
callBack: confirm_callback,
message: '提示信息:选确定还是取消?',
title: '提示框标题'
}
);
//-->
</script>
PANEL对话框的构造函数同样有两种传参方式。
PANEL对话框功能强大,可灵活定制。构造函数的参数body, header, footer可以传入字符串、XNML_String对象(代表XNML片段),或者是一个XNJS Button对象。
第一种传参方式:
new Dialog(dialog_type, [body,header,footer,X,Y,width,height]);
|
参数名 |
类型 |
描述 |
是否可选 |
默认值 |
|
dialog_type |
Number |
对话框类型,值必须是Dialog.DIALOG_PANEL。 |
必选。若该参数省略,则创建的是CONFIRM对话框。 |
n/a |
|---|---|---|---|---|
|
body |
String/XNML_String/Button |
要显示的消息内容 |
可选,不需要可以传null |
默认为空。 |
|
header |
String/XNML_String/Button |
对话框的标题内容 |
可选,不需要可以传null |
默认为空。 |
|
footer |
String/XNML_String/Button |
对话框的底部内容 |
可选,不需要可以传null |
默认为空。 |
|
X |
Number |
对话框位置的横坐标 |
可选,不需要可以传null |
默认居中 |
|
Y |
Number |
对话框位置的纵坐标 |
可选,不需要可以传null |
距离窗口上边框200px |
|
width |
Number |
对话框的宽度 |
可选,不需要可以传null |
400px |
|
height |
Number |
对话框的高度 |
可选,不需要可以传null |
默认自动伸展 |
第二种传参方式:
new Dialog(dialog_type, parameters);
|
参数名 |
类型 |
描述 |
是否可选 |
默认值 |
|
dialog_type |
Number |
对话框类型,值必须是Dialog.DIALOG_PANEL。 |
必选。若该参数省略,则创建的是CONFIRM对话框。 |
n/a |
|---|---|---|---|---|
|
parameters |
Object |
参数以parameters对象的属性传入。具体参见下面的parameters对象属性列表。 |
必选 |
n/a |
parameters参数对象属性列表:
|
属性名 |
类型 |
描述 |
默认值 |
|
body |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
header |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
footer |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
X |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
Y |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
width |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
|
height |
同第一种传参方式 |
同第一种传参方式 |
同第一种传参方式 |
PANEL对话框提供了丰富的函数用于定制对话框,可以使用XNML片段设置标题、消息主体和底部内容,还可以动态添加Button对象。这些函数只对于PANEL类型的对话框可用。
|
PANEL对话框的函数 |
备注 |
|
添加对话框的标题内容。原有标题内容仍然存在。header的类型可以是String/XNML_String/Button。 |
|
|
添加对话框的主体消息内容。原有消息内容仍然存在。body的类型可以是String/XNML_String/Button。 |
|
|
添加对话框的底部内容。原有底部内容仍然存在。footer的类型可以是String/XNML_String/Button。 |
|
|
设置对话框的标题内容。原有标题内容被清除。header的类型可以是String/XNML_String/Button。 |
|
|
设置对话框的主体消息内容。原有消息内容被清除。body的类型可以是String/XNML_String/Button。 |
|
|
设置对话框的底部内容。原有底部内容被清除。footer的类型可以是String/XNML_String/Button。 |
|
|
销毁对话框。开销较大,不建议使用。建议使用hide()和show()函数打开和隐藏对话框。 |
|
|
隐藏对话框,但没有销毁,以后还可以通过show()函数显示出来。 |
|
|
显示对话框。 |
|
|
清空对话框的内容。 |
|
|
设置对话框的样式:'normal'或'error'样式。 |
|
|
设置对话框的宽度。 |
|
|
设置对话框的高度。 |
|
|
设置对话框的尺寸,包括宽度和高度。 |
|
|
设置对话框位置的横坐标。 |
|
|
设置对话框位置的纵坐标。 |
|
|
根据坐标调整对话框位置。 |
|
|
将对话框移动到定位元素element所在的位置。 |
|
|
设置与定位元素的对齐方式。只在根据定位元素移动对话框的情况下有效。16种对齐方式,详细情况请点击左边函数的链接。默认对齐方式为'4-1'。 |
|
|
设置对话框相对定位元素的水平偏移。只在根据定位元素移动对话框的情况下有效。 |
|
|
设置对话框相对定位元素的垂直偏移。只在根据定位元素移动对话框的情况下有效。 |
<xn:js-string var="loc_input">
<input id="xnjs_location" value="http://dev.xiaonei.com/wiki/XNJS" size="50" />
</xn:js-string>
<script type="text/javascript">
<!--
function showPanel() {
var panel_dialog;
if (!getPanel.panel_dialog) {
//创建PANEL对话框,<xn:js-string>定义的内容作为消息主体
panel_dialog = showPanel.panel_dialog =
new Dialog(Dialog.DIALOG_PANEL, loc_input, '标题');
//创建Button对象
var button1 = new Button('关闭对话框', button1_callback);
panel_dialog.addBody(button1); //将button1添加到对话框底部
var ele = document.getElementById('id123');
panel_dialog.setAlignType('2-1');
panel_dialog.moveTo(ele); //以'2-1'对齐方式移动对话框到ele元素
}
else {
panel_dialog = showPanel.panel_dialog;
}
panel_dialog.show();
//button1按钮的callback函数
function button1_callback() {
//按钮被点时隐藏对话框
panel_dialog.hide();
}
}
//-->
</script>