| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 | 
							- /*预加载处理区域*/
 
- Namespace.register("U.UF.DL");
 
- //#region 加载js css等
 
- /*
 
- * @param  {object} 对象。
 
- 如果直接加载javascript,则构建一个javascript的对象,形如{src:"/uform.js","charset": "utf-8", "type": "text/javascript"},也可以带自定义属性。
 
- 由于QQ,微博,微信的加载方式如下:均采用对象形式构建javascript链接文件
 
- 异步加载qq登录的js  {"data-appid": "100584402", "charset": "utf-8", "src": "http://qzonestyle.gtimg.cn/qzone/openapi/qc-1.0.1.js" }
 
- 异步加载微博登录的js {"charset": "utf-8", "src": "http://tjs.sjs.sinajs.cn/open/api/js/wb.js?appkey=1242324937&i=" + Guid.newGuid(), "charset": "utf-8", "type": "text/javascript"}
 
- 异步加载微信登录js {"charset": "utf-8", "src": "http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js", "charset": "utf-8", "type": "text/javascript" }
 
- * @param  {function} 回调函数
 
- */
 
- U.UF.DL.asynLoadJs = function (obj, fun) {
 
-     var _head = U.selectEl("head"); //获取head元素
 
-     //创建元素
 
-     var _script = $$("script", obj);
 
-     //给元素设置事件
 
-     U.UF.DL.fileElementLoaded(_script, fun);
 
-     //追加元素
 
-     _head.append(_script, 0, _head[0].firstChild);
 
-     return _script;
 
- }
 
- /**
 
- * 动态添加css文件
 
- * @param  {object} 获取的地址对象 例如:{ "href": /uform.css", "type": "text/css", "rel": "stylesheet" }。
 
- * @param  {function} 回调函数
 
- *返回值出去做什么?示例在哪里? 操作人可以删除这个link
 
- */
 
- U.UF.DL.asynLoadCss = function (obj, fun) {
 
-     var _head = U.selectEl("head"); //获取head元素
 
-     //创建元素
 
-     var _link = $$("link", obj);
 
-     //给元素设置事件
 
-     U.UF.DL.fileElementLoaded(_link, fun);
 
-     //追加元素
 
-     _head.append(_link, 0, _head[0].firstChild);
 
-     return _link;
 
- }
 
- /**
 
- * 设置异步加载文件或者iframe
 
- * @param  {element} 加载的元素
 
- ----------$("iframe", { "id": _UTP, "name": _UTP, "width": 0, "height": 0, "style": { "display": "none" }, "src": _UDE[i][1] }, _UCS)的iframe对象。
 
- * @param  {function} 回调函数
 
- */
 
- U.UF.DL.iframeLoad = function (obj, fun) {
 
-     U.UF.DL.fileElementLoaded(obj, fun);
 
- }
 
- //iframe,script标签,link标签三种元素的加载事件设置,并且回调
 
- /**
 
- * @param  {element} 加载的元素
 
- ----------$("iframe", { "id": _UTP, "name": _UTP, "width": 0, "height": 0, "style": { "display": "none" }, "src": _UDE[i][1] }, _UCS)的iframe对象。
 
- * @param  {function} 回调函数
 
- _B布尔类型
 
- */
 
- U.UF.DL.fileElementLoaded = function (obj, fun) {
 
-     //ie系列的处理
 
-     if (obj.onreadystatechange !== undefined) {
 
-         //为obj添加事件处理函数 类似于onclick之类的
 
-         obj.onreadystatechange = function () {
 
-             //成功加载的状态码的判断。 在ie系列下readyState == complete 的时候为加载成功
 
-             if (obj.readyState == "complete") {
 
-                 //加载成功后去除事件
 
-                 obj.onreadystatechange = null;
 
-                 //没加载成功重新执行isFunction函数
 
-                 if (U.UF.C.isFunction(fun)) {
 
-                     //等加载成功直接回调
 
-                     fun.call(obj)
 
-                 }
 
-             }
 
-         }
 
-     }
 
-     //如果是非ie浏览器支持onload事件加载iframe、 js 、css
 
-     else {
 
-         //为obj添加事件处理函数 类似于onclick之类的
 
-         obj.onload = function () {
 
-             //加载成功后去除事件
 
-             obj.onload = null;
 
-             //没加载成功重新执行isFunction函数
 
-             if (U.UF.C.isFunction(fun)) {
 
-                 //等加载成功直接回调
 
-                 fun.call(obj)
 
-             }
 
-         }
 
-     }
 
- }
 
- /**
 
- * 在head头部追加样式styleText
 
- *
 
- * @param  {string} style标签的内容
 
- * 例:U.UF.DL.loadStyle=(".classname  {width:100px}")
 
- *返回值:object 返回出去做什么?用途在哪里? 用户可以根据自己的需求去管理这个object 例如当用户已经加载好不需要这个style可以删除这个style
 
- */
 
- U.UF.DL.loadStyle = function (csstext) {
 
-     //Style
 
-     var _head = U.selectEl("head")[0]; //获取head标签
 
-     var _style = $$("style", {}); //创建一个style标签 
 
-     //如果HTML5有此属性,则直接写内容
 
-     if (_style.styleSheet) { //html5兼容
 
-         _style.styleSheet.cssText = csstext;
 
-     }
 
-     else { //ie兼容
 
-         //否则,直接追加孩子节点.
 
-         _style.appendChild(document.createTextNode(csstext));
 
-     }
 
-     _head.appendChild(_style);
 
-     document.body.offsetHeight; //添加设置和执行,重绘本页面.
 
-     return _style;
 
- }
 
- /*
 
- **作用:在网页开发的过程中,我们会通过Ajax去后台进行通讯交互,
 
- *       在交互的过程中,我们无法预料整个交互的过程的时间,如果这里时候页面上没有任何的提示,
 
- *       那么用户会认为页面上不具备该功能,导致用户体验非常不好,所以在我们调用后台请求的时候,
 
- *       在指定的元素地方加上一个图片loading效果,那么在加载服务器数据的时候页面用户可以看到等待进行的图片,
 
- *       这样的话大大增加了用户体验,Loding加载功能主要的作用就是能在Ajax加载页面数据的时候,
 
- *       在指定区域的添加一张loading的图片
 
- **案例:引用uform框架U.A.Request去后台取数据的时候,有的时候网络情况不是特别好,
 
- *       那么可能会在后台查询有段时间,那么这个时候就会通过U.UF.DL.loading(element);
 
- *       去创建一个loading加载等待数据
 
- **@param {element} el 添加要加一个图片loading效果的指定的的元素
 
- */
 
- U.UF.DL.loading = function (el) {
 
-     //判断是否有需要添加loading效果的元素
 
-     if (el) {//如果有需要添加loading效果的元素
 
-         //判断是否添加了loading元素
 
-         //        if (el.loadingel) {
 
-         //            return false;
 
-         //        }
 
-         //        else {
 
-         // var _elparent = U.selectEl(el).Parent(); //获取添加loading效果的指定元素的父级元素
 
-         //            var _width = U.selectEl(_elparent)[0].style.width || U.UF.EL.getElementRealWidth ($(_elparent)[0]) + "px";//获取添加loading效果的元素的父级元素的宽
 
-         //            var _height = U.selectEl(_elparent)[0].style.height || U.UF.EL.getElementRealHeight($(_elparent)[0]) + "px"; //获取添加loading效果的元素的父级元素的高
 
-         //判断loading元素的样式display是否隐藏或者显示
 
-         if (el.loadingel) {
 
-             el.loadingel["P"]++;
 
-         }
 
-         else {
 
-             if (U.UF.EL.offsetParent(el, true) != el) {
 
-                 el.postion = el.style.position;
 
-                 el.style.position = "relative";
 
-             }
 
-             var _lodingel = el.loadingel = $$("div", {
 
-                 "P": 0, //这个为loading元素
 
-                 "style": {
 
-                     "width": "100%",
 
-                     "height": "100%",
 
-                     "left": 0,
 
-                     "top": 0,
 
-                     "position": "absolute",
 
-                     "background-color": "#fff"
 
-                 }//做一个遮罩层,防止里面内容显示出来
 
-             });
 
-             var _loginimg = $$("div", {
 
-                 "style": {
 
-                     "display": "block",
 
-                     "z-index": "1000",
 
-                     "width": "37px",
 
-                     "height": "17px",
 
-                     "position": "absolute"
 
-                 }
 
-             }, _lodingel); //判断loading元素的样式display是否隐藏或者显示
 
-             var _img = $$("img", { "src": "/img/Loading.gif" }, _loginimg); //创建一个存放loading图片的img元素
 
-             el.appendChild(_lodingel); //插入loading元素
 
-             _loginimg.style.left = ($(el)[0].offsetWidth - _loginimg.offsetWidth) / 2 + 'px'; //获取需要loading元素的父级元素的宽度减去loading元素的宽度除以2 
 
-             _loginimg.style.top = ($(el)[0].offsetHeight - _loginimg.offsetHeight) / 2 + 'px'; //获取需要loading元素的父级元素的高度减去loading元素的高度除以2 
 
-             //_elparent.style.overflow = "hidden"; //给当前元素的父级元素添加一个样式,作为一个遮罩层
 
-         }
 
-         return _lodingel;
 
-         //        }
 
-     }
 
- }
 
- /*
 
- ** 作用:当页面加载完毕后,就移除loading效果
 
- ** @param {element} el 当前laoding元素的整体元素
 
- */
 
- U.UF.DL.uploading = function (el) {
 
-     if (el && el.loadingel && el.loadingel["P"]-- == 0) {
 
-         //移除loading效果
 
-         U.selectEl(el.loadingel).remove();
 
-         el.style.position = el.postion;
 
-         el.loadingel = null;
 
-     }
 
- }
 
- //#endregion
 
 
  |