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 >);

        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;
        }
    }
}
View Code

相关文章: