var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; };
if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } }
{
let window = _____WB$wombat$assign$function_____("window");
let self = _____WB$wombat$assign$function_____("self");
let document = _____WB$wombat$assign$function_____("document");
let location = _____WB$wombat$assign$function_____("location");
let top = _____WB$wombat$assign$function_____("top");
let parent = _____WB$wombat$assign$function_____("parent");
let frames = _____WB$wombat$assign$function_____("frames");
let opener = _____WB$wombat$assign$function_____("opener");
; !function () {
var kwindow = {
v: "2.2",
ie6: !!window.ActiveXObject && !window.XMLHttpRequest,
index: 100000
};
kwindow.enums = {
type: { alert: 0,confirm:6,msg: 1, prompt:2,loading: 4,win:5},
contType: { iframe: 100, dom: 101, ajax: 102 },
promptType:{text:0,textarea:1},
anim: { def: 'kui-anim', anim_01: 'kui-anim-01', anim_02: 'kui-anim-02', anim_03: 'kui-anim-03', anim_04: 'kui-anim-04', anim_05: 'kui-anim-05', anim_06: 'kui-anim-06' },
classes: { kwindow: 'kui-window', title: 'kui-window-title', dialog: 'kui-window-dialog', iframe: 'kui-window-iframe', content: 'kui-window-content', buttons: 'kui-window-btns', options: 'kui-window-options', close: 'kui-window-close', min: 'kui-window-min', max: 'kui-window-max', normal: 'kui-window-normal', loadingText: 'kui-window-loading-text' }
};
//easing动画:http://jqueryui.com/easing/
kwindow.config = {//全局默认配置
//shade: { opacity: 0.3, bgColor: '#000' },
shadeStyle:{background_color:'#000',opacity:'0.3'},
anim: kwindow.enums.anim.def,
time: 0,
title: '信息',
move: '.kui-window-title', //触发拖动的元素.
showTitleBar: true,
//closeAnim: { name: 'linear', params: { width: 0, height: 0, opacity: 0 }, speed: 200 },//easeInQuad
closeAnim:{className:'kui-anim-close',speed:200},//speed的值设置为与classsName对应的样式一致,单位为毫秒.
minimizeAnim: { name: 'linear', params: {}, speed: 200 },
normalizeAnim: { name: 'linear', params: {}, speed: 200 },
maximizeAnim: { name: 'linear', params: {}, speed: 200 }
};
var obj = function (config) {
kwindow.index += 2;//遮罩层index=kwindow.index-1
this.index = kwindow.index;
this.config = config;
if (this.config.max!=false&&!this.config.max) {
this.config.max = {}
}
if (this.config.shadeStyle) {
this.config.shadeStyle.filter = 'alpha(opacity=' + (parseFloat(this.config.shadeStyle.opacity) * 100) + ')';
}
kwindow['obj_' + kwindow.index] = this;
this.tempData = {};//方便存放一些临时数据.
this.create();
this.args = this.config.args || {};//交互操作,比如iframe子父页面交互操作传递参数都通过args,args从父页面传到子页面,又从子页面传到父页面.
this.args.index=this.index;
this.args.kwindow = $('#kui-window-' + this.index + '');
this.args.close=true;//回调函数中通过设置close的值为false可以阻止弹出框关闭.
if (this.config.onShow) {
this.config.onShow(this.args);//以便让用户使用js进行各种操作,例如用js对外观进行修改等等.
}
}
obj.prototype.createShade = function () {//创建遮罩层
//alert(this.config.shade.opacity);
if (this.config.shade == false) {
return;
}
var html = '
';
$('body').append(html);
};
obj.prototype.create = function () {
var _obj = this;
this.createShade();
var _className = '';
switch (this.config.type) {
case kwindow.enums.type.alert:
_className = 'kui-window-alert';
break;
case kwindow.enums.type.confirm:
_className = 'kui-window-confirm';
break;
case kwindow.enums.type.msg:
_className = 'kui-window-msg';
break;
case kwindow.enums.type.prompt:
_className = 'kui-window-prompt';
break;
case kwindow.enums.type.loading:
_className = 'kui-window-loading';
break;
case kwindow.enums.type.win:
_className = 'kui-window-win';
break;
default:
break;
}
if ((('string' == typeof _obj.config.content) && _obj.config.content.substr(0, 4) == 'url:')
|| (('string' == typeof this.config.content) && this.config.content.substr(0, 9) == 'ajax-get:')
|| (('string' == typeof this.config.content) && this.config.content.substr(0, 10) == 'ajax-post:')
)
{
if (_obj.config.showLoading == undefined) {
_obj.config.showLoading = true;
}
if (_obj.config.showLoadingDelay == undefined) {
_obj.config.showLoadingDelay = 1000;
}
if (_obj.config.showLoadingWindow == undefined) {
_obj.config.showLoadingWindow = window.kwindow;//top.kwindow
}
}
var contentHtml = '';
//if ('string' == typeof this.config.content) {
// contentHtml = this.config.content;
//}
if (('string' == typeof _obj.config.content) && _obj.config.content.substr(0, 4) == 'url:') {
//scrolling:'yes'、'no'、'auto'
var guid = Guid.NewGuid();
top[guid]={loadingIndex:0};
top[guid].isLoaded = false;
top[guid].kwindow = _obj.config.showLoadingWindow;
if (_obj.config.showLoading == true && _obj.config.showLoadingWindow) {
if (_obj.config.showLoadingDelay > 0) {
var _timeoutID = window.setTimeout(function () {
window.clearTimeout(_timeoutID);
if (!top[guid].isLoaded) {
top[guid].loadingIndex = _obj.config.showLoadingWindow.loading(_obj.config.loadingConfig);
}
}, _obj.config.showLoadingDelay)
}
else {
top[guid].loadingIndex = _obj.config.showLoadingWindow.loading(_obj.config.loadingConfig);
}
}
//alert('a'+loadingIndex);
contentHtml = ''
this.config.contentPartStyle=$.extendEx({}, { overflow: 'hidden' }, this.config.contentPartStyle);//如果载加的iframe页面有水平滚动条,滚动条本身有一定高度,导致会出现垂直滚动条,理论上如果有水平滚动条contentHeight还应减去水平滚动本身本高度.由于滚动条本身高度水大,这里通过overflow:hidden强制不显示滚动条也是可以的.
}
else if (('string' == typeof this.config.content) && this.config.content.substr(0, 9) == 'ajax-get:') {
contentHtml = '';
}
else if (('string' == typeof this.config.content) && this.config.content.substr(0, 10) == 'ajax-post:') {
contentHtml = '';
}
else if ($.isFunction(this.config.content)) {
contentHtml = this.config.content(this);
}
else {
contentHtml = this.config.content;
if (!contentHtml) {
contentHtml = '';
}
}
var html = '';
if (this.config.showTitleBar) {
html += '
' + this.config.title + '
';
}
//content
html += '
';
html += contentHtml;
html += '
';
if (this.config.min != false || this.config.max != false || this.config.close != false) {
html += '
';
if (this.config.min != false) {
html += '
';
}
if (this.config.max != false) {
html += '
';
}
if (this.config.min !=false || this.config.max != false) {
html += '
';
}
if (this.config.close != false) {
html += '
';
}
html += '
';
}
//按钮栏容器
if (this.config.buttons) {
html += '
';
}
html += '
';
$('body').append(html);
var jo = $('#kui-window-' + _obj.index + '');
if (_obj.config.anim) {
jo.addClass(_obj.config.anim);
}
var shadePart = $('#kui-window-shade-' + _obj.index + '');
var titlePart = $('#kui-window-' + _obj.index + ' .' + kwindow.enums.classes.title + '');
var optionsPart = $('#kui-window-' + _obj.index + ' .' + kwindow.enums.classes.options + '');
var contentPart = $('#kui-window-' + _obj.index + ' .' + kwindow.enums.classes.content + '');
var loadingPart = $('#kui-window-' + _obj.index + ' .' + kwindow.enums.classes.content + '>div');
var loadingTextPart = $('#kui-window-' + _obj.index + ' .' + kwindow.enums.classes.loadingText + '');
var buttonsPart = $('#kui-window-' + _obj.index + ' .' + kwindow.enums.classes.buttons + '');//最下一栏按钮栏
var closeButton = $('#kui-window-' + _obj.index + ' .' + kwindow.enums.classes.close + '');//右上角关闭图标
var minButton = $('#kui-window-' + _obj.index + ' .' + kwindow.enums.classes.min + '');//右上角最小化图标
var maxButton = $('#kui-window-' + _obj.index + ' .' + kwindow.enums.classes.max + '');//右上角最大化图标
var normalButton = $('#kui-window-' + _obj.index + ' .' + kwindow.enums.classes.normal + '');//右上角窗口还原到正常图标
var iframePart = $('#kui-window-' + _obj.index + ' iframe');
var loadingIndex = 0;
var isLoaded = false;
if ((('string' == typeof _obj.config.content) && _obj.config.content.substr(0, 9) == 'ajax-get:')
|| (('string' == typeof _obj.config.content) && _obj.config.content.substr(0, 10) == 'ajax-post:')
)
{
if (_obj.config.showLoading == true && _obj.config.showLoadingWindow) {
if (_obj.config.showLoadingDelay > 0) {
var _timeoutID = window.setTimeout(function () {
window.clearTimeout(_timeoutID);
if (!isLoaded) {
loadingIndex = _obj.config.showLoadingWindow.loading(_obj.config.loadingConfig);
}
}, _obj.config.showLoadingDelay)
}
else {
loadingIndex = _obj.config.showLoadingWindow.loading(_obj.config.loadingConfig);
}
}
}
if (('string' == typeof _obj.config.content) && _obj.config.content.substr(0, 9) == 'ajax-get:') {
var url = _obj.config.content.substr(9);
$.get(url, function (data, status) {
isLoaded = true;
kwindow.close(loadingIndex);
contentPart.html(data);
});
}
else if (('string' == typeof _obj.config.content) && _obj.config.content.substr(0, 10) == 'ajax-post:') {
var url = this.config.content.substr(10);
$.post(url, {}, function (data, status) {
isLoaded = true;
kwindow.close(loadingIndex);
contentPart.html(data);
});
}
//按钮栏放置按钮.
if (!this.config.buttons) {
this.config.buttons = [];
}
$.each(this.config.buttons, function (i, button) {
var _btn = $('' + button.text + ' ').appendTo(buttonsPart);
_btn.setStyle(button.style);
$(_btn).click(function () {
//var arg = undefined;
if (_obj.config.type == kwindow.enums.type.prompt) {
var joText = $('input', jo);
if (joText.length > 0) {
//arg = joText.val();
_obj.args.promptResult = joText.val();
}
else {
//arg = $('textarea', jo).val();
_obj.args.promptResult = $('textarea', jo).val();
}
}
_obj.args.closeTrigger = 'btn-' + i + '';
if (button.close == 'first') {//关闭后再执行回调.
if (button.close != false) {//不关闭对话框
kwindow.close(_obj.index);
}
if (button.onClick) {
button.onClick(_obj.args);
}
}
else {//执行回调后再关闭对话框.
if (button.onClick) {
button.onClick(_obj.args);
}
if (button.close != false) {//不关闭对话框
kwindow.close(_obj.index);
}
}
});
});
//以上完成所有元素添加到页面后才进行宽高计算,这样才是正确的.
jo.setStyle(this.config.style);
titlePart.setStyle(this.config.titlePartStyle);
buttonsPart.setStyle(this.config.buttonsPartStyle);
//autoContentHeight()用到jo.height、titlePart.height、buttonsPart.height,所以上面三句放在前面.
this.autoContentHeight();//放置setStyle()方法前执行,以便用户可以自定义高度覆盖.
if (this.config.type == kwindow.enums.type.loading) {
if (this.config.loadingText) {
$(loadingPart).css('width', 'auto');//放置setStyle()方法前执行,以便用户可以自定义宽度覆盖.
}
}
shadePart.setStyle(this.config.shadeStyle);
optionsPart.setStyle(this.config.optionsPartStyle);
//alert(this.config.contentPartStyle+'aa');
contentPart.setStyle(this.config.contentPartStyle);
loadingPart.setStyle(this.config.loadingPartStyle);
loadingTextPart.setStyle(this.config.loadingTextPartStyle);
closeButton.setStyle(this.config.closeButtonStyle);
minButton.setStyle(this.config.minButtonStyle);
maxButton.setStyle(this.config.maxButtonStyle);
normalButton.setStyle(this.config.normalButtonStyle);
iframePart.setStyle(this.config.iframePartStyle);
//关闭
closeButton.click(function () {//点击右上角关闭图标关闭
_obj.args.closeTrigger = 'closeButton';
kwindow.close(_obj.index);
});
//最小化
minButton.click(function () {
_obj.config.normal = {
//left: $(jo).position().left,
//top: $(jo).position().top,
//left: $(jo).css('left'),//config中没有定义left和top时,是居中对齐,left和top与窗口大小有关,无法确定left和top的值.
//top:$(jo).css('top'),
width: $(jo).width(),
height: $(jo).height()
};
if (_obj.config.minimizeAnim != false) {
jo.animate($.extendEx({
height: titlePart.height()
//opacity: 0
},_obj.config.minimizeAnim), _obj.config.minimizeAnim.speed, _obj.config.minimizeAnim.name, function () {
contentPart.hide();
minButton.hide();
buttonsPart.hide();
maxButton.hide();
normalButton.show();
jo.css('height', 'auto');
});
}
else {
contentPart.hide();
minButton.hide();
buttonsPart.hide();
maxButton.hide();
normalButton.show();
jo.css('height', 'auto');
}
_obj.config.sizeStatus = 'min';
if (_obj.config.onMin) {
_obj.config.onMin();
}
});
//最大化
maxButton.click(function () {
_obj.config.normal = {//config中没有定义left和top时,是居中对齐,left和top与窗口大小有关,无法确定left和top的值.
width: $(jo).width(),
height: $(jo).height()
};
contentPart.show();
minButton.hide();
maxButton.hide();
normalButton.show();
var max_width = _obj.config.max.width;
var max_height = _obj.config.max.height;
var max_left = _obj.config.max.left;
var max_top = _obj.config.max.top;
if (!max_width) {
max_width = $(window).width();
}
if (!max_height) {
max_height = $(window).height();
}
if (!max_left) {
max_left = 0;
}
if (!max_top) {
max_top = 0;
}
//最大化之前先将左上角坐标保存起来,以便正常化时动画使用,否则动画不知道从哪里变到哪里.
//注:这个左上角坐标是临时的.因为居中对齐时坐标是无法确定的,因为浏览器窗口大小会变化.
_obj.tempData.normal = {
left: jo.position().left,
top: jo.position().top
};
if (_obj.config.maximizeAnim != false) {
buttonsPart.hide();//动画过程中,由于contentPart的高度不变,buttonsPart位置不变,这样看起来不好看,所以先隐藏好了.
jo.animate($.extendEx({
width: max_width,
height: max_height,
left: max_left,
top: max_top
//opacity: 1
},_obj.config.maximizeAnim), _obj.config.maximizeAnim.speed, _obj.config.maximizeAnim.name, function () {
buttonsPart.show();
jo.css('left', max_left);
jo.css('top', max_top);
jo.css('width', max_width);
jo.css('height', max_height);
_obj.autoContentHeight();
});
}
else {
jo.css('left', max_left);
jo.css('top', max_top);
jo.css('width', max_width);
jo.css('height', max_height);
_obj.autoContentHeight();
}
$(window).resize(function () {
if (_obj.config.sizeStatus == 'max') {
if (!_obj.config.max.left) {
jo.css('left', 0);
}
if (!_obj.config.max.top) {
jo.css('top', 0);
}
if (!_obj.config.max.width) {
jo.css('width', $(window).width());
}
if (!_obj.config.max.height) {
jo.css('height', $(window).height());
_obj.autoContentHeight();
}
}
});
_obj.config.sizeStatus = 'max';
if (_obj.config.onMax) {
_obj.config.onMax();
}
});
normalButton.click(function () {
if (_obj.config.sizeStatus == 'min') {
if (_obj.config.normalizeAnim != false) {
jo.animate($.extendEx({
width: _obj.config.normal.width,
height: _obj.config.normal.height
//opacity: 0
},_obj.config.normalizeAnim), _obj.config.minimizeAnim.speed, _obj.config.minimizeAnim.name, function () {
contentPart.show();
minButton.show();
buttonsPart.show();
maxButton.show();
normalButton.hide();
//先设置width和height,再调用setPosition方法,计算居中对齐时要用到width和height.
$(jo).css('width', _obj.config.normal.width);
$(jo).css('height', _obj.config.normal.height);
_obj.setPosition();
});
}
else {
contentPart.show();
minButton.show();
buttonsPart.show();
maxButton.show();
normalButton.hide();
//先设置width和height,再调用setPosition方法,计算居中对齐时要用到width和height.
$(jo).css('width', _obj.config.normal.width);
$(jo).css('height', _obj.config.normal.height);
_obj.setPosition();
}
}
if (_obj.config.sizeStatus == 'max') {
if (_obj.config.normalizeAnim != false) {
jo.animate($.extendEx({
width: _obj.config.normal.width,
height: _obj.config.normal.height,
left: _obj.tempData.normal.left,
top: _obj.tempData.normal.top
//opacity: 0
}, _obj.config.normalizeAnim), _obj.config.minimizeAnim.speed, _obj.config.minimizeAnim.name, function () {
minButton.show();
maxButton.show();
normalButton.hide();
//先设置width和height,再调用setPosition方法,计算居中对齐时要用到width和height.
$(jo).css('width', _obj.config.normal.width);
$(jo).css('height', _obj.config.normal.height);
_obj.setPosition();
_obj.autoContentHeight();
});
}
else {
minButton.show();
maxButton.show();
normalButton.hide();
//先设置width和height,再调用setPosition方法,计算居中对齐时要用到width和height.
$(jo).css('width', _obj.config.normal.width);
$(jo).css('height', _obj.config.normal.height);
_obj.setPosition();
_obj.autoContentHeight();
}
}
_obj.config.sizeStatus = 'normal';
if (_obj.config.onNormal) {
_obj.config.onNormal();
}
});
this.setPosition();
this.move();
//定时关闭
if (this.config.time && this.config.time > 0) {
var timerId = setTimeout(function () {
clearTimeout(timerId);
_obj.args.closeTrigger = 'timer';//定时关闭.
kwindow.close(_obj.index);
}, this.config.time);
}
};
//obj.prototype.setStyle=function(selector,style){
// if (style&&('object'==typeof style)&& $(selector).length > 0) {
// //var styles = styleStr.split(';');
// $.each(style, function (k, v) {
// k = k.replace(/_/g, "-");//js变量名不能有'-',css中样式名都是'-'.注意:k.replace('_', '-')只会替换第一个'_'.
// v = $.trim(v);
// if (v == '') {
// return;
// }
// $(selector).css(k, v);
// });
// }
//};
obj.prototype.autoContentHeight = function () {
//alert(this.index);
var jo = $('#kui-window-' + this.index + '');
var titlePart = $('#kui-window-' + this.index + ' .' + kwindow.enums.classes.title + '');
var contentPart = $('#kui-window-' + this.index + ' .' + kwindow.enums.classes.content + '');
var buttonsPart = $('#kui-window-' + this.index + ' .' + kwindow.enums.classes.buttons + '');//最下一栏按钮栏
//outerHeight(true):包括:padding、margin和border.参数不传true时不包括margin.
//innerHeight():包括padding
//height()://不包括adding、margin和border.
var contentHeight =parseInt($(jo).height(),10) - (titlePart.length > 0 ? parseInt(titlePart.outerHeight(true),10) : 0) - (buttonsPart.length > 0 ? parseInt(buttonsPart.outerHeight(true),10) : 0) - parseInt(contentPart.css('margin-top').split('px')[0], 10) - parseInt(contentPart.css('margin-bottom').split('px')[0], 10) - parseInt(contentPart.css('padding-top').split('px')[0], 10) - parseInt(contentPart.css('padding-bottom').split('px')[0], 10) - parseInt(contentPart.css('border-top-width').split('px')[0], 10) - parseInt(contentPart.css('border-bottom-width').split('px')[0], 10);
contentPart.css('height', contentHeight);//放置setStyle()方法前执行,以便用户可以自定义高度覆盖.
};
obj.prototype.setPosition = function () {//设置left和top
var _obj = this;
var _kwindow = $('#kui-window-' + this.index + '');
var _left = null;
if (this.config.style) {
_left = this.config.style.left;
}
var _top = null;
if (this.config.style) {
_top=this.config.style.top;
}
if (_left == 'r') {//水平靠右
_left = $(window).width() - $(_kwindow).outerWidth();
_left += (this.config.leftAdd ? this.config.leftAdd : 0);
_kwindow.css('left', _left);
$(window).resize(function () {
_left = $(window).width() - $(_kwindow).outerWidth();
_left += (_obj.config.leftAdd ? _obj.config.leftAdd : 0);
_kwindow.css('left', _left);
});
}
else if (_left==0||_left) {
_kwindow.css('left', _left);
}
else {//水平居中
//没有定义left则默认水平居中.
_left = ($(window).width() - $(_kwindow).outerWidth()) * 0.5;//outerWidth()
_left += (this.config.leftAdd ? this.config.leftAdd : 0);
_kwindow.css('left', _left);
$(window).resize(function () {
_left = ($(window).width() - $(_kwindow).outerWidth()) * 0.5;
_left += (_obj.config.leftAdd ? _obj.config.leftAdd : 0);
_kwindow.css('left', _left);
});
}
if (_top == 'b') {
_top = $(window).height() - $(_kwindow).outerHeight();
_top += (this.config.topAdd ? this.config.topAdd : 0);
_kwindow.css('top', _top);
$(window).resize(function () {
_top = $(window).height() - $(_kwindow).outerHeight();
_top += (_obj.config.topAdd ? _obj.config.topAdd : 0);
_kwindow.css('top', _top);
});
}
else if (_top==0||_top) {
_kwindow.css('top', _top);
}
else {
//没有定义top则垂直居中.
_top = ($(window).height() - $(_kwindow).outerHeight()) * 0.5; //outerHeight()
_top += (this.config.topAdd ? this.config.topAdd : 0);
_kwindow.css('top', _top);
$(window).resize(function () {
_top = ($(window).height() - $(_kwindow).outerHeight()) * 0.5; //outerHeight()
_top += (_obj.config.topAdd ? _obj.config.topAdd : 0);
_kwindow.css('top', _top);
});
}
};
//设置可拖动
obj.prototype.move = function () {
if (this.config.move == false) {//不允许拖动
return;
}
if ($(this.config.move).length == 0) {//比如:loading
return;
}
$k('#kui-window-' + this.index + '').draggable({ target: this.config.move });
//var _kwindow = $('#kui-window-' + this.index + '');
//var _dragPart = $('#kui-window-' + this.index + ' ' + this.config.move + '');
//_dragPart.css('cursor', 'move');
//var _obj = this;
//$(_dragPart).mousedown(function (e) {
// _obj.dragState = { preX: e.pageX,preY:e.pageY };
//});
//$(document).mousemove(function (e) {
// if (!_obj.dragState) {
// return;
// }
// //$("#debugInfo").text(e.pageX + ", " + e.pageY);
// var cssLeft = $(_kwindow).css('left');
// var cssTop = $(_kwindow).css('top');
// var left = cssLeft.substr(0, cssLeft.length - 2);
// left = parseFloat(left);
// var top = cssTop.substr(0, cssTop.length - 2);
// top = parseFloat(top);
// $(_kwindow).css('left', left + (e.pageX - _obj.dragState.preX));
// $(_kwindow).css('top', top + (e.pageY - _obj.dragState.preY));
// _obj.dragState.preX = e.pageX;
// _obj.dragState.preY = e.pageY;
//});
//$(document).mouseup(function (e) {
// if (!_obj.dragState) {
// return;
// }
// _obj.dragState = undefined;
//});
};
kwindow.getFrameIndex = function (windowName) {
return parseInt($("#" + windowName.replace('iframe-', '')).attr("kwindow-index"), 10);
};
kwindow.getArgs = function (index) {
var obj = kwindow['obj_' + index];
return obj.args;
};
kwindow.getIFrame = function (index, selector) {//kwindow.getChildFrame(selector, index) - 获取iframe页的DOM。例如:kwindow.getIFrame('body', index);
//如果没有传index则从times属性中取出index.
if (!index) {
index = kwindow.index;
}
var _kwindow = $('#kui-window-' + index + '');
if(!selector){
return _kwindow.find('iframe').contents();//_kwindow.find('iframe').contents()[0]就是document对象.
}
else {
return _kwindow.find('iframe').contents().find(selector);
}
};
kwindow.iframeSrc = function (index, url, loadingConfig) {//kwindow.iframeSrc(index, url) - //重置特定iframe url
if (!index) {
index = kwindow.index;
}
var _kwindow = $('#kui-window-' + index + '');
var loadingIndex = kwindow.loading(loadingConfig);
_kwindow.find("iframe")[0].onload = function () {
kwindow.close(loadingIndex);
};
_kwindow.find("iframe").attr("src", url);
};
kwindow.close = function (index) {
if (index==undefined||index==null) {
index = kwindow.index;
}
var _kwindow = $('#kui-window-' + index + '');
if (_kwindow.length == 0) {//例如手动关闭后定时器又执行关闭.
return;
}
var _obj = kwindow['obj_' + index];
var _shade = $('#kui-window-shade-' + index + '');
if (_obj.config.onClosing) {
//var args={index:index,kwindow:_kwindow};
_obj.config.onClosing(_obj.args);
}
if (_obj.args.close == false) {//不关闭
_obj.args.close = true;//重置为默认值true.
return;
}
_shade.remove();
if (_obj.config.closeAnim != false) {
var _timerID=window.setTimeout(function () {
window.clearTimeout(_timerID);
_kwindow.remove();
}, _obj.config.closeAnim.speed)
_kwindow.addClass('kui-anim-close');
}
else {
_kwindow.remove();
}
if (_obj.config.onClosed) {
_obj.config.onClosed(_obj.args);
}
kwindow['obj_' + index] = undefined;
_obj = undefined;
};
kwindow.closeAll = function (type) {
$.each($('.kui-window'), function (i, _kwindow) {
var kwindowIndex = parseInt($(_kwindow).attr('kwindow-index'), 10);
var kwindowType = parseInt($(_kwindow).attr('kwindow-type'), 10);
if (!type || type == kwindowType) {
kwindow.close(kwindowIndex);
}
});
};
kwindow.open = function (config) {
var _obj = new obj(config);
return _obj.index;
};
kwindow.msg = function (config) {
var _config = $.extend({}, kwindow.config, { time: 3000, min: false, max: false, close: false, showTitleBar: false }, config, { type: kwindow.enums.type.msg });
return kwindow.open(_config);
};
kwindow.alert = function (config) {
var _config = $.extendEx({}, kwindow.config, { buttons: [{ text: '确定' }], min: false, max: false, close: true }, config, { type: kwindow.enums.type.alert });
//alert(_config.buttons[0].style);
//if ("function" == typeof config) {
// _config.button[0].onClick = config;
//}
//else {
// $.extendEx(_config, config);
//}
return kwindow.open(_config);
};
kwindow.confirm = function (config) {
var _config = $.extendEx({}, kwindow.config, { buttons: [{ text: '确定' }, { text: '取消' }], min: false, max: false, close: true }, config, { type: kwindow.enums.type.confirm });
//if ("function" == typeof config) {
// _config.button[0].onClick = config;
// _config.button[1].onClick = onOK;
//}
//else {
// $.extendEx(_config, config);
//}
return kwindow.open(_config);
};
kwindow.prompt = function (config) {
//用户可以自定义content,取值时程序内部先取input元素的内容,若无input则取textarea元素的内容.
var _config = $.extendEx({}, kwindow.config, { buttons: [{ text: '确定' }, { text: '取消' }], min: false, max: false, close: true }, config, { type: kwindow.enums.type.prompt });
//if ("function" == typeof config) {
// _config.button[0].onClick = config;
// _config.button[1].onClick = onOK;
//}
//else {
// $.extendEx(_config, config);
//}
if (!_config.content) {
if (!_config.promptType || _config.promptType == kwindow.enums.promptType.text) {
_config.promptType = kwindow.enums.promptType.text;
_config.content = ' ';
}
else if (_config.promptType == kwindow.enums.promptType.textarea) {
_config.content = '';
}
}
return kwindow.open(_config);
};
kwindow.loading = function (config) {
config = config || {};
//config.IconCls //
//loadingText:'加载中...',
//loadingIconCls: '.loadingIconCls-1'
var _config = $.extendEx({}, kwindow.config, { shade: { opacity: 0.01 }, content: '' + (config.loadingText ? ("
" + config.loadingText + "
") : "") + '
', showTitleBar: false, min: false, max: false, close: false }, config, { type: kwindow.enums.type.loading });
return kwindow.open(_config);
};
kwindow.win = function (config) {
//alert('a');
//alert(config.contentPartStyle);
var _config = $.extendEx({}, kwindow.config, { sizeStatus: 'normal', max: {}, min: true, close: true,title:'窗口' }, config, { type: kwindow.enums.type.win });
//alert(_config.contentPartStyle);
return kwindow.open(_config);
};
kwindow.full = function (index) {
if (!index) {
index = kwindow.index;
}
var _kwindow = $('#kui-window-' + index + '');
if (_kwindow.length == 0) {//例如手动关闭后定时器又执行关闭.
return;
}
//var obj = kwindow['obj_' + index];
var maxButton = $('#kui-window-' + index + ' .' + kwindow.enums.classes.max + '');//右上角最大化图标
maxButton.click();
};
window.kwindow = kwindow;
$k.alert = kwindow.alert;
$k.confirm = kwindow.confirm;
$k.prompt = kwindow.prompt;
$k.loading = kwindow.loading;
$k.win = kwindow.win;
}();
}