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
|