当前位置:编程学习 > JAVA >>

扩展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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,