| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 | /*预加载处理区域*/Namespace.register("U.MD");//#region 加载js css等/*** 添加styleText** @param  {string} 需要定位的右键菜单* @param  {element} 需要定位的右键菜单*/U.M.CCssStyle = function (UST) {    //UST    var _UDOD = document.documentElement.firstChild, //获取head标签    _UDSD = $$("style", {}); //创建一个style标签     if (_UDSD.styleSheet) { //html5兼容        _UDSD.styleSheet.cssText = UST;    }    else { //ie兼容        _UDSD.appendChild(document.createTextNode(UST));    }    _UDOD.appendChild(_UDSD); document.body.offsetHeight; //添加设置和执行    return _UDSD;}/*** jsonp初始化对象** @param  {string} 获取的地址 例如:"http://cbjs.baidu.com/js/m.js"。* @param  {string} //获取的类型----------js 获取js文件----------css 获取css文件* @param  {function} 回调函数* @param  {object} { "src": "http://cbjs.baidu.com/js/m.js", "type": "text/javascript" }* @param  {boolean}  是否重复加载文件* @return  {element} 加载的元素*/U.MD.DynamicLoad = function (UURL, UTP, UCB, UDE, UTF) {        var i, _UDTD, _UDAD,        _UAE = [UTP == "js" ? "script" : UTP],         _UHD = $("head");        UTP = UTP.toLocaleLowerCase(); //访问的类型        _UDAD = $(_UAE[0]); //获取所有相同类型的文件        if (!UTF) {//判断文件是否添加            for (i = 0; i < _UDAD.length; i++) {                if (_UDAD[i].src == UURL) {                    _UDTD = _UDAD[i]; break;                }            }        }        if (!_UDTD || UTF) { //设置异步回调            _UDTD = $$(_UAE, UDE || (UTP == "js" ? { "src": UURL, "type": "text/javascript", "language": "javascript", "charset": "utf-8"} : { "href": UURL, "type": "text/css", "rel": "stylesheet" }));            _UHD.append(_UDTD, 0, _UHD[0].firstChild);        }        U.MD.IframeLoad(_UDTD, UCB); return _UDTD;}/*** 设置异步加载文件或者iframe* @param  {element} 加载的元素----------$("iframe", { "id": _UTP, "name": _UTP, "width": 0, "height": 0, "style": { "display": "none" }, "src": _UDE[i][1] }, _UCS)的iframe对象。* @param  {function} 回调函数*/U.MD.IframeLoad = function (UDOD, UCB) {    try { var _UCP = UDOD.complete, _URS = UDOD.readyState; } catch (e) { }    if (_UCP == "complete" && ((_URS == "complete" || _URS == "loaded") || _URS == null)) {        U.M.apply(UDOD, UCB)(); return;    }    else {        (UDOD.onreadystatechange) && (UCB = U.M.apply(UDOD, [[UDOD.onreadystatechange], [UCB]]));        UDOD.onreadystatechange = U.M.apply(UDOD, [[U.MD.IframeLoad.AILD, [UDOD, UCB]]]);    }    return UDOD;}/*** onload成功进入* @param  {element} 加载的元素* @param  {function} 回调函数*/U.MD.IframeLoad.AILD = function (UDOD, UCB) {    var _URS = UDOD.readyState;    (_URS == "complete" || _URS == "loaded" || _URS == null) && (UDOD.complete = "complete", UDOD.onreadystatechange = null, (U.Ut.isFunction(UCB) ? UCB.call(UDOD) : U.M.apply(UDOD, UCB)()), UDOD.complete = null);}////判断文件是否存在//U.MD.ISWJCZ = function () {//    $.ajax(UURL, "", UCB, "", { "type": "get" });//}/**设置元素loading问题:----添加一个参数,允许往loading中传递元素。----在第一个loading数据量大未出数据的时候,点第二个loading,第二个先获取到数据,会否第二个会先出效果。----由于第一次点击数据量大,后台是否能够第二个数据先出。----由于第一次点击数据量大,前台loading的效果是否支持第二以及后续点击先出。** @param  {element} 元素* @param  {boolean} loading类型------------true 、 false 两种loading   */U.MD.loading = function (UDOD, UTF) {    if (UDOD) {        var i, _UAE, _UDTD, _UDPD = $(UDOD).Parent(),        _UDSD = UDOD ? UDOD.__ULOADElement__ : null, //该元素的loading元素        _USE = { width: "", height: "", overflow: "", padding: "", borderWidth: "", minHeight: "", minWidth: "", cssText: "" }; //loading设置样式区域        if (_UDSD) {//loading存在添加计数            if (UDOD != _UDSD) { _UDSD.P++; }        }        else {  //无loading 需要loading的情况            _UDSD = UDOD.__ULOADElement__ = $$("div", { "P": 0, "className": UDOD.className, //这个为loading元素                "style": { "cssText": UDOD.style.cssText + ";" + ($(UDOD).css("display") == "none" ? "display:block" : "") },                "onresize": [[U.MD.loading.Donresize, ["this"]]]            });            if (UTF === true) {//loading样式1                $$("div", { "style": { "cssText": "overflow:hidden;width:40px;height:20px;background:url('/img/loading.gif') 0px 0px no-repeat;margin:auto"} }, _UDSD);            }            else { //loading样式2                $$("div", { "style": { "cssText": "position:relative;width:" + (UTF && UTF.width ? UTF.width : "33px") + ";height:" + (UTF && UTF.height ? UTF.height : "33px") + ";background:url('" + (UTF && UTF.img ? UTF.img : "/img/UAL.gif") + "') 0px 0px no-repeat;margin:auto"} }, _UDSD);            }            try { _UDPD.insertBefore(_UDSD, UDOD); } //loading 添加到指定的位置            catch (e) { }            //loading样式设置            U.MD.loading.Donresize(_UDSD, UDOD, UTF);            _UAE = UDOD.style;            _$(_USE).Each(function (USV, UTP) { _USE[UTP] = _UAE[UTP]; });            //原元素缩小            (UDOD = $(UDOD)).addAttrArray({ "__UCS__": _USE, "style": { "cssText": "width:0px;overflow:hidden;height:0px;padding:0;min-height:0px;min-width:0px;border-width:0px;"} });        }        return _UDSD;    }}/*** loading变化设置* @param  {element} 当前loading元素*/U.MD.loading.Donresize = function (UDOD, UDTD, UTF) {    if (UDOD["P"] > -1) { //loading变化设置        var _UDAD = $("div", UDOD),        _UH = $(UDOD).height() - _UDAD[0].offsetHeight; //loading大小变化        _UDAD[0].style.top = (_UH > 0 ? _UH : 0) / 2 + "px"; //loading图片位置设定    }    else { //取消loading        U.MD.uploading(UDOD);    }}/*** 取消loading* @param  {element} 当前loading元素*/U.MD.uploading = function (UDOD) {    UDOD = UDOD[0] || UDOD; //需要loading元素    var i, _UAE = ["__ULOADElement__", "__UCS__"], //loading元素遗留参数    _UDTD = UDOD[_UAE[0]],  //loading    _UME = UDOD[_UAE[1]], //需loading元素原样式    _UCE = UDOD.style,    _UDE = { "width": "0px", "height": "0px", "overflow": "hidden", "padding": "0px", "borderWidth": "0px", "minHeight": "0px", "minWidth": "0px" }; //元素变回参数    //判断元素是否已经可以结束loading    if (_UDTD && ((_UDTD["P"]--) == 0)) {        for (i in _UDE) {            if (_UDE.hasOwnProperty(i)) {                //设置或者取消原参数                if (_UDE[i] == _UCE[i]) { _UDE[i] = _UME[i]; }                else { delete _UDE[i]; }            }        };        UDOD["__UCS__"] = null; //设置样式        $(_UDTD).remove(); //移除loading        $(UDOD).addAttrArray({ "style": _UDE }); //原loading元素样式回归        //清除残留参数        try { delete UDOD[_UAE[0]]; delete UDOD[_UAE[1]] }        catch (e) {            UDOD.removeAttribute(_UAE[0]);            UDOD.removeAttribute(_UAE[1]);        } return true;    }}//#endregion
 |