(function ($) {
var $parent = parent.$;
//获取弹出窗口数据集合
function getDialogs() {
var dialogs = $parent("#div_index_data").data("dialogs");
dialogs = dialogs || [];
if ($.util.isEmptyObjectOrNull(dialogs))
return [];
return dialogs;
}

//获取当前弹出窗口数据
function getCurrentDialog() {
var dialogs = getDialogs();
return dialogs[dialogs.length - 1] || {};
}

//获取当前弹出窗口Id
function getCurrentDialogId() {
return getCurrentDialog().id;
}

//添加弹出窗口数据,包括弹出窗口Id和jQuery对象
function addDialog(id) {
var data = getDialogs();
data.push({ id: id, caller: window });
$parent("#div_index_data").data("dialogs", data);
}

//移除当前弹出窗口数据
function removeCurrentDialog() {
var dialogs = getDialogs();
dialogs.pop();
}

//树形操作
$.easyui.dialog = function () {
return {
//添加弹出框
addDialog: function (id) {
addDialog(id);
return getCurrentDialog();
},
//获取原调用者window对象
getCaller: function () {
return getCurrentDialog().caller;
},
//获取原调用者jQuery对象
getCaller$: function () {
return getCurrentDialog().caller.$;
},
//获取弹出窗window对象
getCurrent: function () {
var dialogId = getCurrentDialogId();
return top.frames[dialogId + "_iframe"] ? (!top.frames[dialogId + "_iframe"].contentWindow ? top.frames[dialogId + "_iframe"] : top.frames[dialogId + "_iframe"].contentWindow) : top.contentWindow;
},
//获取弹出窗jQuery对象
getCurrent$: function () {
var dialogId = getCurrentDialogId();
return top.frames[dialogId + "_iframe"] ? (!top.frames[dialogId + "_iframe"].contentWindow ? top.frames[dialogId + "_iframe"].$ : top.frames[dialogId + "_iframe"].contentWindow.$) : top.contentWindow.$;
},
//打开弹出窗口
open: function (options) {
/// <summary>
/// 弹出模态窗,解决在Iframe中无法全屏遮罩,
/// 注意:仅支持url弹窗
/// </summary>
/// <param name="options" type="Object">
/// 1. title:标题
/// 2. url:网址
/// 3. buttons:显示在窗口底部的按钮区域div的id
/// 4. icon:图标class
/// 5. width:宽度
/// 6. height:高度
/// 7. onInit:初始化事件,返回false跳出执行
/// </param>
initOptions();
if (!options.onInit(options))
return;
var dialog = createDialow();
show();
addDialog(options.id);

//初始化参数
function initOptions() {
options = $.extend({
id: $.util.newGuid(""),
title: '',
url: '',
icon: 'icon-standard-common-window',
width: 600,
height: 360,
iframe: true,
closed: false,
maximizable: true,
resizable: true,
cache: false,
modal: true,
buttons: '',
onInit: function () {
return true;
},
closeCallback: function () { }
}, options || {});
}

//创建窗口div
function createDialow() {
if (options.iframe) {
return $parent("<div id='" + options.id + "' style='overflow:visible;'><iframe id='" + options.id + "_iframe' scrolling=\"auto\" frameborder=\"0\" style=\"width:100%;height:100%;\" src='" + options.url + "' ></iframe></div>").appendTo('body');
} else {
return $parent("<div id='" + options.id + "'></div>").appendTo('body');
}
}

//弹出窗口
function show() {
dialog.dialog({
title: options.title,
href: options.iframe ? "" : options.url,
width: options.width,
height: options.height,
closed: options.closed,
maximizable: options.maximizable,
resizable: options.resizable,
cache: options.cache,
modal: options.modal,
iconCls: options.icon,
buttons: options.buttons,
border: false,
onLoad: function () {
},
onClose: function () {
options.closeCallback();
$parent("#" + getCurrentDialogId()).dialog('destroy');
removeCurrentDialog();
}
});
}
},
openCommon: function (url, title, width, height, callBack) {
$.easyui.dialog.open({
title: title,
url: url,
width: width,
height: height,
buttons: [{
text: '确定',
iconCls: 'icon-standard-common-ok',
handler: function () {
callBack(getCurrentDialogId());
}
}, {
text: '取消',
iconCls: 'icon-standard-common-cancel',
handler: function () {
$.easyui.dialog.close();
}
}]
});
},
//关闭弹出窗口
close: function () {
var dialogId = getCurrentDialogId();
if (!dialogId)
return;
$parent('#' + dialogId).dialog('close');
},
//打开Tab页面
openTab: function (tabid, url, name, img) {
addDialog("tabs_iframe_" + tabid);
AddTabMenu(tabid, url, name, img, true, true, true);
},
//关闭当前Tab页面
closeTab: function () {
removeCurrentDialog();
ThisCloseTab();
}
}
}();
})(jQuery);

jquery.util.easyui.dialog的更多相关文章

  1. easyui.dialog.js

    (function ($) { var $parent = parent.$; //获取弹出窗口数据集合 function getDialogs() { var dialogs = $parent(& ...

  2. Easyui dialog中嵌入iframe

    如果easyui dialog的地址属性用href超链接,easyui 不会加载整个url页面,只会截取url目标页的body体间的html, 如果想加载把其他页面 加载进dialog的iframe中 ...

  3. iframe中的jquery ui modal dialog 覆盖父窗口

    在iframe中 使用jquery ui dialog,弹出后可以覆盖父窗体 ///iframe中的jquery ui modal dialog 覆盖父窗口 function openDialog() ...

  4. easyui dialog 中嵌入html页面

    最近使用easyui比较多,这个插件确实很好用.在使用时也遇到了大大小小的问题,好在都一一解决了. 记录一下今天遇到的问题. 目的:用easyui的dialog嵌入一个html页面(html中仍有要执 ...

  5. easyui dialog 中 panel-body 高度太小出现 滚动条 的原因

    easyui dialog 中 panel-body 高度太小出现 滚动条 的原因: dialog 高度比 iframe 高度大79 就可以了 $.editcompanypersoninfo = fu ...

  6. Easyui dialog Y轴滚动条定位

    使用Easyui dialog进行数据新增的时候,如果Y轴方向有滚动条,当关闭之前的时候,将滚动条拉到最下方,再次打开的时候,滚动条还是定位在最下方. 需求: 每次打开的时候dialog Y轴滚动条定 ...

  7. 窗口-EasyUI Window 窗口、EasyUI Dialog 对话框、EasyUI Messager 消息框

    EasyUI Window 窗口 扩展自 $.fn.panel.defaults.通过 $.fn.window.defaults 重写默认的 defaults. 窗口(window)是一个浮动的.可拖 ...

  8. 熟练使用jquery ui / easyui的各种组件设计网页界面

    熟练使用jquery ui / easyui的各种组件设计网页界面

  9. day14—jQuery UI 之dialog部件

    转行学开发,代码100天——2018-03-30 今天主要展示jQuery UI 之dialog部件的用法, 参考文档:https://jqueryui.com/dialog/ 本文记录分享初始的引用 ...

随机推荐

  1. 20145207 《Java程序设计》第一周学习总结

    不好意思,来晚了   别的先不说,先道个歉,放假前跟娄老师多少发生点矛盾,望原谅. 假期忙实习还有一些其他事情,为了认真对待这门课,把剩下的时间留下来,争取一天一章来弥补. 由于没选课加上另一门课没开 ...

  2. Java基础(33):StringBuilder的方法与应用实例(String相关类)

    Java 中的 StringBuilder 类的常用方法 重要的事情说三遍: 在需要频繁对字符串进行修改操作时使用 StringBuilder 的效率比 String 要高 在需要频繁对字符串进行修改 ...

  3. CCF真题之命令行选项

    201403-3 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项.每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔.这些字符串中的第一个为该命令行工具的名字,由小写字母 ...

  4. SNMP ber 编码

    5.1 标识域(tag)的编码规则 标识域指明数据的类型,占用1个字节,常见的类型有:BOOL(0x01);INT(0x02);OCTSTR(0x04);NULL(0x05);OBJID(0x06); ...

  5. datagridview 用法

        标签:c# datagridview 用法 拖一个datagridview控件 初始的名字叫dataGridView1 准备工作: 点击控件右上角的三角,选择“添加列”添加表头的项 基本操作: ...

  6. paper 12:机器学习常见算法分类汇总

    机器学习无疑是当前数据分析领域的一个热点内容.很多人在平时的工作中都或多或少会用到机器学习的算法.这里南君先生为您总结一下常见的机器学习算法,以供您在工作和学习中参考. 机器学习的算法很多.很多时候困 ...

  7. C# 实现 单例模式

    http://blog.sina.com.cn/s/blog_75247c770100yxpb.html

  8. libSVM 简易使用手册

    关于SVM的基础理论知识,可以google这篇文章<SVM的八股简介>,讲解得生动有趣,是入门的极好教材.作为拿来主义者,我更关心怎么用SVM,因此瞄上了台湾林智仁教授提供的libSVM. ...

  9. 几款python集成开发环境

    以下软件的测试环境为ArchLinux64位系统.对软件的介绍很粗略,详细介绍参考官网. 1-名称:eric 官网:http://eric-ide.python-projects.org/ 特点:该软 ...

  10. 使用 nano 的时候提示找不到 libncursesw.so.5 这个共享库

    由于拿nano来练习pacman这个包管理系统,也就是卸了装,装了卸.但是后来当我想用 nano 编辑文件的时候,系统提示标题上说的这错误. 不知道做了什么,难道是误删了什么东西...后来几番搜索,用 ...