扩展easyui.window
[javascript] view plaincopy
/**
* @requires jquery, EasyUI 1.2.6+
*
* 此方法是对 EasyUI.window 和 EasyUI.dialog 的扩展
* 可以实现如下功能:
* 1、使用框架页面时可以控制窗口是否跨框架弹出在框架最顶层页面,还是框架内当前页面。默认框架最顶层页面
* 2、可以控制url加载页面方式,是使用默认方式,还是iframe加载, 默认iframe加载
* 3、使用iframe加载页面时,可以实现父页面向子页面传递javaScript对象
* 4、使用iframe加载页面时,可以订制iframe onLoad事件
* 5、扩展content属性,自动识别是静态文本内容,还是加载页面
* 6、通过赋值ID属性,控制弹出窗体唯一性
* 7、易做图、buttons中定义按钮的handler属性,支持弹出窗体iframe中方法调用。
* 8、弹出窗体关闭方式更灵活
*
*
* @author zhaojh<zjh527@163.com>
* @date 2012.11.15
*
*/
(function($){
$.namespace('vseaf');
/**
* 普通窗体
*
* 新增属性说明如下
* @param isFrame 是否开启使用iframe加载给定url页面, 此属性设置为true时则开启使用iframe加载页面。 值:true|false, 默认值true
* @param self 用于框架页面,如果值为true则不跨框架,否则跨框架弹出在框架最顶层页面。 值:true|false, 默认值false
* @param data 用于在使用iframe加载给定页面时,父页面给子页面传递数据。 默认值null
*
* 扩展属性说明如下
* @param onLoad 当使用iframe加载给定url页面时,在iframe加载完成后调用。
* 默认接收一个参数对象,参数对象属性说明参见下面易做图、buttons说明第2项。
* @param content 可根据内容前缀关键字'url:',来判断是显示静态文本还是加载页面。
* @param id 此属性用来标识弹出窗体的唯一性,不再用来充当panel的id属性
*
* 特殊属性说明如下
* this.content iframe方式加载内容页的window对象。 用于onLoad方法中的调用
*
*
* 易做图、buttons 属性定义按钮handler属性扩展说明如下
* 1、当handler 被赋值字符串时,表示调用弹出窗体iframe中已有的与字符串值同名的方法
* 2、被调用方法默认接收一个参数对象,对象属性如下:
* data: 类型:Object,是对vseaf.open方法参数data的引用
* close: 类型:Function,用来关闭弹出窗体
*
*
*
*
* 注:其他属性请参考EasyUI API文档。
*
*/
vseaf.open = function(opts){
var win;
var defaults = {
width: 500,
height: 400,
minimizable: true,
maximizable: true,
collapsible: true,
resizable: true,
isFrame: true, //是否使用iframe
self: false, //用于框架页面,如果值为true则不跨框架,否则跨框架弹出在框架最顶层页面
data: null, //iframe方式下用来父页面向弹出窗体中子页面传递数据
content: '',
onLoad: null,
onClose: function(){
win.dialog('destroy');
}
};
var options = $.extend({}, defaults, opts);
//取顶层页面
var _doc, _top = (function(w){
try{
_doc = w['top'].document;
_doc.getElementsByTagName;
}catch(e){
_doc = w.document;
return w;
}
if(options.self || _doc.getElementsByTagName('frameset').length >0){
_doc = w.document;
return w;
}
return w['top'];
})(window);
//如填写ID属性,则窗体唯一
var winId;
if(options.id){
winId = options.id;
delete options.id;
//检查创建窗口是否已经存在,存在则不在创建
&nbs
补充:web前端 , JavaScript ,