easyui的window插件再次封装
easyui的window插件再次封装
说明:该插件弹出的弹出框在最顶层的页面中,而不是在当前页面所在的iframe中,它的可拖动范围是整个浏览器窗口;所以不能用JS的parent对象获取弹出它的父页面,这里用了一个笨方法,最多支持四级弹出框,即弹出框中再弹出弹出框的情况,笨方法也是方法,它很简单、很有效。
代码:
/**
* easyui的window插件再次封装
* 2014年11月10日
*/ SimpoWin = {
showWin: function showWindow(title, url, width, height) {
if (!top.SimpoWinId) top.SimpoWinId = 0;
var divId = "simpoWin" + top.SimpoWinId;
top.$("body").append('<div id="' + divId + '"></div>'); top.$('#' + divId).window({
modal: true,
title: title,
width: width,
height: height,
collapsible: false,
minimizable: false,
maximizable: false,
content: function () {
return '<iframe frameborder="0" src="' + url + '" style="width: ' + (width - 14).toString() + 'px; height: ' + (height - 39).toString() + 'px; margin: 0;">';
},
onClose: function () {
top.$('#' + divId).window('destroy');
top.SimpoWinId--;
}
}).window('open'); top.SimpoWinId++;
switch (top.SimpoWinId) {
case 1:
top.SimpoWinParent1 = window;
break;
case 2:
top.SimpoWinParent2 = window;
break;
case 3:
top.SimpoWinParent3 = window;
break;
default:
top.SimpoWinParent = window;
break;
}
}, closeWin: function () {
var divId = "simpoWin" + (top.SimpoWinId - 1).toString();
top.$('#' + divId).window('close');
}, GetWinParent: function () {
switch (top.SimpoWinId) {
case 1:
return top.SimpoWinParent1;
case 2:
return top.SimpoWinParent2;
case 3:
return top.SimpoWinParent3;
default:
return top.SimpoWinParent;
}
}
}
带回调函数版,支持传入url或div容器id:
/**
* easyui的window插件再次封装
* 2014年11月10日
*/ SimpoWin = {
showWin: function (title, url, width, height, okcallback, closecallback) {
if (!top.SimpoWinId) top.SimpoWinId = 0;
var divId = "simpoWin" + top.SimpoWinId;
top.$("body").append('<div id="' + divId + '"></div>'); top.$('#' + divId).window({
modal: true,
title: title,
width: width,
height: height,
collapsible: false,
minimizable: false,
maximizable: false,
content: function () {
return '<iframe frameborder="0" src="' + url + '" style="width: ' + (width - 14).toString() + 'px; height: ' + (height - 39).toString() + 'px; margin: 0;">';
},
onClose: function () {
top.$('#' + divId).window('destroy');
top.SimpoWinId--;
if (closecallback) closecallback();
}
}).window('open'); top.SimpoWinId++;
switch (top.SimpoWinId) {
case 1:
top.SimpoWinParent1 = window;
top.SimpoWinOKCallback1 = okcallback;
break;
case 2:
top.SimpoWinParent2 = window;
top.SimpoWinOKCallback2 = okcallback;
break;
case 3:
top.SimpoWinParent3 = window;
top.SimpoWinOKCallback3 = okcallback;
break;
default:
top.SimpoWinParent = window;
top.SimpoWinOKCallback = okcallback;
break;
}
}, closeWin: function () {
var divId = "simpoWin" + (top.SimpoWinId - 1).toString();
top.$('#' + divId).window('close');
}, OK: function (data) {
switch (top.SimpoWinId) {
case 1:
top.SimpoWinOKCallback1(data);
case 2:
top.SimpoWinOKCallback2(data);
case 3:
top.SimpoWinOKCallback3(data);
default:
top.SimpoWinOKCallback(data);
}
}, GetWinParent: function () {
switch (top.SimpoWinId) {
case 1:
return top.SimpoWinParent1;
case 2:
return top.SimpoWinParent2;
case 3:
return top.SimpoWinParent3;
default:
return top.SimpoWinParent;
}
}, showWin2: function (title, containerId, width, height, closecallback) {
top.$('#' + containerId).css("display", "");
var l = (top.$(top.window).width() - width) / 2;
var t = (top.$(top.window).height() - height) / 2 + top.$(top.document).scrollTop();
top.$('#' + containerId).window({
modal: true,
title: title,
width: width,
height: height,
left: l,
top: t,
collapsible: false,
minimizable: false,
maximizable: false,
onClose: function () {
if (closecallback) closecallback();
}
}).window('open');
}, closeWin2: function (containerId) {
top.$('#' + containerId).window('close');
}
}
如何使用:
1、引用该插件的JS文件
2、父页面代码:
SimpoWin.showWin("选择素材", "TextMessageList.aspx", 880, 580);
3、子页面代码:
var winParent = SimpoWin.GetWinParent();
winParent.setValue(val); //子页面操作父页面
SimpoWin.closeWin(); //关闭弹出框
easyui的window插件再次封装的更多相关文章
- javascript笔记——jqGrid再次封装
xingrunzhao js插件再次封装 demo 'use strict'; /** * commerce grid框架 * 依赖jqgrid */ (function ($_self, jQuer ...
- JS弹出框插件zDialog再次封装
zDialog插件网址:http://www.jq22.com/jquery-info2426 再次封装zDialog的代码: (function ($) { $.extend({ iDialog: ...
- ajax的再次封装!(改进版) —— new与不 new 有啥区别?
生命不息重构不止! 上一篇写了一下我对ajax的再次封装的方法,收到了很多有价值的回复,比如有童鞋建议用$.extend,一开始还以为要做成插件呢,后来才知道,原来这个东东还可以实现合并.省着自己再去 ...
- quartz.net插件类库封装(含源码)
1.前言 目录: 1.quartz.net任务调度:源码及使用文档 2.quartz.net插件类库封装 最近项目需要做一写任务作业调度的工作,最终选择了quartz.net这个插件,它提供了巨大的灵 ...
- ajax的再次封装!
js的动态加载.缓存.更新以及复用 系列有点卡文,放心会继续的.先来点更基础的,为js的加载做点铺垫. jQuery的ajax本来就很方便了,为啥还要在进一步的封装呢?这个首先要看项目的具体需求了,如 ...
- easyUI的window包含一个iframe,在iframe中如何关闭window?
easyUI的window包含一个iframe,在iframe中如何关闭window? parent.$('#win').window('close');
- easyui表单插件-包括日期时控件-列表
← jQuery EasyUI 表单插件 – Numberspinner 数值微调器 jQuery EasyUI 表单插件 - Timespinner 时间微调器 jQuery EasyUI 插件 ...
- Easyui 让Window弹出居中
原文:Easyui 让Window弹出居中 easyui1.3.2版本,window的弹出不会居中了.而dialog是会居中的,我们必须为为window的open事件做扩展 代码如下:只要加入以下代码 ...
- EasyUI在window中使用kindeditor 4.1.10在IE9中不能回显、获得焦点编辑的问题
描述 :kindeditor4.1.10版本是当前最新的版本,在浏览器兼容性和功能方面都是值得一赞的,在开发中能方便快捷的满足一些开发需求. 问题 : 问题总是有的. 在使用过程中,遇到EasyU ...
随机推荐
- Javascript定时器学习笔记
掌握定时器工作原理必知:JavaScript引擎是单线程运行的,浏览器无论在什么时候都只且只有一个线程在运行JavaScript程序. 常言道:setTimeout和setInterval是伪线程. ...
- jquery插件——点击交换元素位置(带动画效果)
一.需求的诞生 在我们的网页或者web应用中,想要对列表中的元素进行位置调整(或者说排序)是一个常见的需求.实现方式大概就以下两种,一种是带有类似“上移”.“下移”的按钮,点击可与相邻元素交换位置,另 ...
- java生成压缩文件
在工作过程中,需要将一个文件夹生成压缩文件,然后提供给用户下载.所以自己写了一个压缩文件的工具类.该工具类支持单个文件和文件夹压缩.放代码: import java.io.BufferedOutput ...
- 欢迎访问我的快站fbengine.kuaizhan.com
欢迎访问我的快站 fbengine.kuaizhan.com
- Redis学习笔记~是时候为Redis实现一个仓储了,RedisRepository来了
回到目录 之前写了不少关于仓储的文章,所以,自己习惯把自己叫仓储大叔,上次写的XMLRepository得到了大家的好评,也有不少朋友给我发email,进行一些知识的探讨,今天主要来实现一个Redis ...
- Atitit 控制中心快速启动面板quick launcher
Atitit 控制中心快速启动面板quick launcher contralPanel.bat aaaControlPanel.contrlx /AtiPlatf_auto/src_atibrow/ ...
- js 图片轮播(一)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 常用的java类型转json的转换类
公司不准引入json-lib-2.x.jar所以只好自己写了一个基本类型的object转json的类,然后支持8种基本类型和javabean,list,map,array,使用putJSON方法,ke ...
- javaweb回顾第八篇如何创建自定义标签
前言:在javaweb开发中自定义标签的用处还是挺多的.今天和大家一起看自定义标签是如何实现的. 1:什么是标签 标签是一种XML元素,通过标签可以使JSP页面变得简介易用,而且标签具有很好的复用性. ...
- LinkedHashMap源码详解
序言 本来是不打算先讲map的,但是随着对set集合的认识,发现如果不先搞懂各种map,是无法理解set的.因为set集合很多的底层就是用map来存储的.比如HashSet就是用HashMap,Lin ...