/** * 弹出1473窗体,需要删除。 * UDPD 父亲元素 *{object} UDE 放置窗体STYLE的地方 * {int}UDE参数 [ "Embed": 是否是Iframe, * "Top": 偏移高, "Left": 偏移左, "Width": 长度, "Height": 高度, * "ContainerId": id, "titleName": 标题, "ContentId": 内容区Id, "Content": 内容, * "hasScroll": 内容区是否滚动, "hasMax": 是否允许放大, "hasMin": 是否允许缩小, * "hasDraw": 是否拉伸, "CStyle": 内容区样式, "IsR":是否移除关闭按钮 * ] * UCBF 单击确认的回调函数 UCNF 单击取消的回调函数 * @returns _UDOD 返回ID为U_COF的对象 **/ U.UF.UI.UForms = function (UDE, UDPD) { UDPD = UDPD || document.body; //选择是否有父亲元素,没有则BODY为父亲元素 var i, _UIT, _UDOD, _UDTD, _UDSD, _UDCD, _UDED, _UAE, _UBE = [/%/, ["Width", "Height", "Top", "Left"]], _UCE = [ //绑定传入数据简写 ["H", "up"], ["HL", "topRight"], ["HR", "topleft"], ["ML", "left"], ["MR", "right"], ["B", "down"], ["BL", "bottomLeft"], ["BR", "bottomRight"] ]; for (i = 0; i < _UBE[1].length; i++) { //使用for循环绑定所传style _UBE[0].test(UDE[(_UIT = _UBE[1][i])]) && (UDE[_UIT] = US[{ "Left": "Width", "Top": "Height" }[_UIT]] * UDE[_UIT].toInt() / 100) } _UDOD = $$("div", { //创建窗体 "className": "UD_W UD_UIU", "id": UDE.ContainerId, "style": { "width": UDE.Width + "px", "height": UDE.Height + "px", "left": UDE.Left + "px", "top": UDE.Top + "px" } }); $$("div", { "className": "UD_ICON UD_ICONl"}, _UDOD);//创建窗体的头 _UDTD = $$("div", { //创建窗体的子集 "className": "UD_WIMG UD_W_TB", "style": { "width": (UDE.Width - 30) + "px" }, "onmousedown": [ [U.UF.F.DragMouseDown, [_UDOD]] ] }, _UDOD); $$("span", {"className": "UD_W_TB_T","innerHTML": UDE.titleName}, _UDTD); //span存放文字地方 _UDSD = $$("div", {"className": "UD_W_TB_WM"}, _UDTD); //创建存放对象 $$("span", { //关闭窗口元素 "title": "关闭", "className": "UD_ICON UD_W_TB_WM_Close", "onmousedown": U.UF.EV.stopBubble, "onclick": [ [U.UF.F.closeWindow, [_UDOD, (UDE.IsR ? "remove" : "")]] ] }, _UDSD) $$("div", {"className": "UD_ICON UD_ICONR"}, _UDOD); //创建对象 _UDCD = $$("div", { //创建格式对象 "className": "UD_WIMG UD_ICONz", "style": { "height": UDE.Height - 36 + "px" }, "onmousedown": U.UF.EV.stopBubble }, _UDOD); _UDED = $$("div", { //创建格式对象 "id": UDE.ContainerId + "Content", "className": "UD_W_WC", "style": { "cssText": "height:100%;" + UDE.CStyle } }, _UDCD); if (UDE.Embed == 0) { //添加内容区域 $$("iframe", {//设定内容初始值 "id": UDE.ContentId, "name": UDE.ContentId, "frameBorder": 0, "scrolling": UDE.hasScroll, "src": UDE.Content, "width": "100%", "height": "100%" }, _UDED); } else { U.selectEl(_UDED).append(UDE.Content); } //事件区域 _UAE = { "with": [{ //事件区域高度 "Element": _UDCD, "height": -36 }, { //事件区域宽度 "Element": _UDTD, "height": 0, "width": -30 }] } if (UDE.hasDraw) { for (i = 0; i < _UCE.length; i++) { $$("span", { "className": "UD_W_WT_" + _UCE[i][0], "onmousedown": [ [U.UF.F.RCDG, [_UDOD, _UCE[i][1], _UAE]] ]//鼠标按中时发生事件,改变窗体。 }, _UDOD); } } //允许拉伸 (UDE.hasMax) && ($$("span", { //最大化拉伸 "title": "最大化", "className": "UD_ICON UD_W_TB_WM_Max", "onmousedown": U.UF.EV.stopBubble, "onclick": [ [U.UF.F.windowZooming, [_UDOD, this, _UAE, _UDTD, { "onmousedown": _UDTD.onmousedown }]] ] }, _UDSD)); (UDE.hasMin) && ($$("span", { //最小化拉伸 "title": "最小化", "className": "UD_ICON UD_W_TB_WM_Min", "onmousedown": U.UF.EV.stopBubble, "onclick": [ [U.UF.F.windowMinimize, [_UDOD]] ] }, _UDSD)); _UDTD.onmousedown = (UDE.Width == US.width && UDE.Height == US.height) ? U.UF.C.apply(this[[U.UF.F.DragElement, [_UDOD, null, _UAE, _UDTD, { "onmousedown": _UDTD.onmousedown }])]] : _UDTD.onmousedown; (UDPD) && (UDPD.appendChild(_UDOD)); U.UF.SI[UDE.Left || UDE.Top ? "SetDTop" : "PopupWindow"](_UDOD); return _UDOD; //添加 } /** * 创建1473窗体 * UDPD 父亲元素 * {int} UDOD主体元素, UTE标题, UDID id, UST表示内容 ,UCS css样式 UW, UH长。 **/ U.UF.UI.SUForms = function (UDOD, UTE, UDID, UST, UCS, UW, UH) { var _UDW = US.width, _UDH = US.height; return U.UF.UI.UForms({ //返回属性 "Embed": 1, "Top": (_UDH - UH - 50) / 2, "Left": (_UDW - UW) / 2, "Width": UW, "Height": UH, "ContainerId": UDID, "titleName": UTE, "ContentId": "", "Content": UST, "hasScroll": "no", "hasMax": false, "hasMin": false, "hasDraw": false, "CStyle": UCS, "IsR": true }, UDOD); } // getStartE: function () { // if (window.getSelection) { //Html5 // return this.R.startContainer; // } // else { // var _UDOD = this.Parent(); // } // }, // getEndE: function () { // if (window.getSelection) { // return this.R.endContainer; // } //Html5 // else { // var _UDOD = this.Parent(); // } // }, // selectAll: function () { }, //富文本编辑器 U.UF.E.RuchEditor = function (UDE) { U.UF.UI.Editor((U.UF.C.isFunction(UDE) || !UDE) ? { head: true, style: { width: "600px", height: "500px" }, title: false, name: "在线编辑", fcb: UDE} : UDE); } //上传文件成功显示到制定的区域 U.UF.E.AddUPWJ = function (UTE, UDBD) { var _UDOD, _UDTD, _UDSD, _UIID = Guid.newGuid().replace(/-/g, ""), _UME = U.UF.UP.XWPGYS(UTE["type"]); if (_UME[2]) { //普通文件上传显示 _UDOD = $$("div", { "contentEditable": "false", "className": "UD_UPO", "onclick": [[]] }); _UDTD = $$("div", { "contentEditable": "false", "className": "UD_UPOL" }, _UDOD); $$("div", { "contentEditable": "false", "className": "UD_SYVCOI UD_SYID " + _UME[0] }, _UDTD); _UDSD = $$("div", { "contentEditable": "false", "className": "UD_UPOR" }, _UDTD); $$("div", { "contentEditable": "false", "innerHTML": UTE["name"], "className": "UD_UPORN" }, _UDSD); $$("div", { "contentEditable": "false", "innerHTML": "下载", "className": "UD_UPORX" }, _UDSD); $$("div", { "contentEditable": "false", "innerHTML": "保存到网盘", "className": "UD_UPORB" }, _UDSD); if (UIMG) { _UDTD = UDBD.parentNode; _UDTD.replaceChild(_UDOD, UDBD); } } else { //图片区域 if (UDBD) { U.UF.IMG.imgReady(U.MD.C.getHeadImage(US.FILESYSTEMURL + UTE["URL"]), null, function(){U.UF.E.ImgOnLoad(UDBD]]]), U.UF.C.apply(null, [[U.UF.E.ImgOnLoad, [);}); } //加载原图 else { var _UIID = Guid.newGuid().replace(/-/g, ""); _UDOD = $$("img", { "id": _UIID, "src": "/img/imgloading.gif", "onmousedown": "return false", "onselectstart": "return false", "ondragstart": "return false", "style": { "cssText": "max-width:100%;width:auto;height:auto;"} }); } //正在上传等待 } } //上传图片预加载成功或者失败 U.UF.E.ImgOnLoad = function (UIID) { if (UIID) { U.selectEl(UIID).addAttrArray({ "onload": "if (U.MD.F) { U.MD.F.H.SUIMG(retElement); }", "src": this.src, "width": this.width, "height": this.height }); } else { U.MD.C.imgError(this, 2); } } /** * 创建群组 * * @param {object} 群信息 */ U.MD.F.J.APPGroup = function (UDE) { // U.MD.F.J.GroupInfoForm(UDE, null); // var _UTE, // _UDFD = $$("div", {}, U.selectEl("#UD_SY")[0]), // _UDMD = U.MD.F.J.GroupInfoForm(UDE, null, _UDFD), //插入添加创建群信息 // _UDTD = U.MD.F.J.SelectFriendForm($("#UD_SYTC")[0], null, _UDFD); //插入添加好友的信息 // //设置样式处理 // $[_UDMD.form, _UDTD.form].addAttrArray({ onmousedown: null, "className": "UD_SYF_S", "style": { "border": "0", "position": "relative", "float": "left", "top": "0", "left": "0"} }); // _UDMD.head.onmousedown = _UDTD.head.onmousedown = null; // _UDMD.form.style.borderRight = "1px solid #444"; // //弹出添加群的框 // _UTE = new U.UF.UI.form({ id: "U_F_CONET", isContain: false, content: _UDFD, bst: { "style": { "overflow": "hidden"} }, // "style": { "width": "736px", "height": "485px", "backgroundColor": "transparent", "overflow": "hidden" }, // title: false, draw: false, max: false, close: false, min: false // }); // _UDMD.cl.onclick = _UDTD.cl.onclick = U.UF.C.apply(_UTE, [[_UTE.shut]]); //关闭按钮处理 } /** * word编辑处理 不使用 * */ U.MD.O.Del = function (UTE) { // var i, j, k, _UTF, _UDMD, _UKE = [], _UVE = [], _UCE = ["nodeValue", "innerHTML"], _UAE = ["width", "height", "minHeight", "minWidth"], _UDOD = $$("div", { "innerHTML": UTE.GetSelectedHtml() }), _UDCD = U.selectEl(_UDOD).Nodes(), _UIE = UTE.GetGBWZ(), _UDPD = UTE.Parent(), _UDAD = U.selectEl(_UDPD).Nodes(), _UTH = (_UDPD.nodeValue == null ? _UDPD.innerText : _UDPD.nodeValue).replace(/\s|\n/g, ""); // if ($(_UDOD).Child().length) { // if (_UDPD.nodeType != 3 && UTE.isE(_UDPD)) { _UVE.push(_UDPD); } for (i = 0; i < _UDAD.length; i++) { if (_UDAD[i].nodeType != 3 && UTE.isE(_UDAD[i])) { _UVE.push(_UDAD[i]); }; } // for (k = 0; k < Math.min(_UVE.length, 2); k++) { // _UDMD = _UVE; j = k ? _UDMD.length - 1 : 0; // do { if (UTE.isE(_UDMD[j])) { _UDCD = _UDMD[j]; _UDMD = U.selectEl(_UDCD).Nodes(); j = j = k ? _UDMD.length : -1; } } while ((k ? ((j -= 1) > -1) : ((j += 1) < _UDMD.length))); // if (_UDCD) { for (i = 0; i < _UCE.length; i++) { if (_UDCD[_UCE[i]] != null) { _UDCD[_UCE[i]] = _UDCD[_UCE[i]].substring.apply(_UDCD[_UCE[i]], k ? [(UTE.GetGBWZ(_UDCD, !k))] : [0, (UTE.GetGBWZ(_UDCD, !k))]); break; } } _UKE.push(_UDCD); } // } // for (i = 0; i < _UVE.length; i++) { // _UDCD = U.selectEl("*", _UVE[i]); // if (_UDCD.length) { // for (j = 0; j < _UDCD.length; j++) { // // for (k = 0; k < _UAE.length; k++) { if ((_UTF = _UDCD[j].style[_UAE[k]]) && _UTF != "auto") { break; } } // if ((k != _UAE.length || (_UDCD[j].className || _UDCD[j].id))) { // if (!$(_UDCD[j]).Child().length) { // for (k = 0; k < _UCE.length; k++) { // if (_UDCD[j][_UCE[k]] != null && (!_UKE[0] || !U.UF.EL.isChild(_UDCD[j], _UKE[0])) && (!_UKE[1] || !U.UF.EL.isChild(_UDCD[j], _UKE[1]))) { _UDCD[j][_UCE[k]] = ""; break; } // } // } // } // else if (_UDCD[j] != _UKE[0] && _UDCD[j] != _UKE[1] && !_UDCD[j].innerHTML) { U.selectEl(_UDCD[j]).remove(); } // } // } // else { for (i = 0; i < _UKE.length; i++) { if (!U.UF.EL.isChild(_UVE[i], _UKE[i])) { if (_UVE[i].className || _UVE[i].id) { U.selectEl(_UVE[i]).remove(); } else { _UVE[i].innerTEXT = ""; } break; } } } // } // UTE.R.collapse(false); return _UKE; // } } U.MD.O.OLWordUP = function (UTF, UDE, UTE, UT, UWE) { // var i, _USE, _UCE = ["nodeValue", "innerHTML"], _UIE = UTE.GetGBWZ(), _UDPD = UTE.Parent(), _UTH = (_UDPD.nodeValue == null ? _UDPD.innerText : _UDPD.nodeValue).replace(/\s|\n/g, ""); // if (!U.UF.C.isString(UTF) && (!UT[1] && !UT[2] && !UT[3])) { // if (((UT[0] > 47 && UT[0] < 112) || (UT[0] > 185 && UT[0] < 193) || (UT[0] > 218 && UT[0] < 223))) { // if ((_USE = U.MD.O.Del(UTE)) && _USE[0]) { UTE.QX(-1, -1, _USE[0]); } // } // } // else { // switch (UTF) { // case "del": case "Backspace": // if ((_USE = U.MD.O.Del(UTE)) && _USE[0]) { return 1; } // else if (_UDPD.className) { if ((!_UIE && UTF == "Backspace") || (_UIE == _UTH.length && UTF == "del")) { return 1; } else if (_UTH.length == 1 && _UTH != "") { _UDPD.innerText = ""; return 1; } else if (!_UTH.length) { return 1; } } // break; // case "Enter": // if (_UDPD.nodeType != 3) { // if (("DIV,SPAN,P".indexOf(_UDPD.tagName) == -1 && _UDPD.className.indexOf("return_key") > -1)) { return 1; } // else if (_UDPD.style.cssText) { UTE.Replace("
"); return 1; } // } // break; // case "save": // (UWE.U.MD.O.W || UWE.U.MD.O.E).Save(); return 1; // break; // } // } } //#region 初始化首页 ///** //* 初始化首页 //* //* @param {object} 任务栏数据 //*/ //U.MD.D.H.SYTJ = function (UDE) { // if (UDE) { //打印推荐用户 // U.MD.D.H.PSYTJN($("#UD_SYSXSSXOC")[0], UDE); // } // else { // U.A.Request(US.CD, [US.DB, "UseStudio_Friends", "RecommendFriends", US.userInfo.userid || US.EMPTYGUID, 0, 11]), U.MD.D.H.AsynSYTJ, [""]; // } //} ///** //* 首页推荐数据异步推荐 //* //* @param {object} 任务栏数据 //*/ //U.MD.D.H.AsynSYTJ = function (r) { // U.MD.D.H.ET["TJ"] = r = r.value; // U.MD.D.H.SYTJ(r); //} ///** //* 打印首页推荐好友New //* //* @param {object} 任务栏数据 //*/ //U.MD.D.H.PSYTJN = function (UDOD, UDE, UTF, UP) { // var i, _UDSD = $$("frag"); UDOD.innerText = ""; // for (i = 0; i < UDE.length; i++) { // $$("img", { "onerror": U.MD.C.imgError, "title": UDE[i].UserName, "alt": UDE[i].UserName, "onclick": function(){U.MD.U.V.ViewOtherUserInfo(UDE[i].UserID);}, "src": U.MD.C.getHeadImage(UDE[i].UserThumbnailImageHead) }, _UDSD); // } // (UTF) && ($$("div", { "className": "UD_SYSXLTTI UD_SYSXLTTIO U_Boom_Img_ys2017", "title": "点击刷新", "onclick": function(){U.MD.D.H.SXZX(UP || 2, this, 28, function(){U.MD.D.H.PSYTJNSX(UTF);});} }, _UDSD)); UDOD.appendChild(_UDSD); //} //#endregion /* Form窗体的使用 1、可以像java语言的用法,用new调用多份,例如: var a=new new U.UF.UI.form(); 2、也可以省略new的步骤,直接U.Alert(),出来的结果为多份。 3、多窗口模式调用方法,var e= U.UF.UI.form (UDE); e.addExtendForm(); 参数一:_UFE[add "name":"add"] 参数二:_UTT 存放大小变化的值 返回值: */ /** * 可以像java语言的用法,用new调用多份,例如: var a=new new U.UF.UI.form(); * * @param {object} 窗体使用传参 ----------min 是否允许最小化 ----------max 是否允许最大化 ----------id 窗体id ----------style 窗体的样式 ----------content 窗体的内容 ----------title 窗体的标题 ----------hst 标题设置 ----------cst 内容设置 ---------__top__ 是否允许点击置顶 * @return {object} 窗体实体 */ U.UF.UI.form = U.UF.UI.form = function (UDE) { return new new U.UF.UI.form.init(UDE).create(); } /** * 可以像java语言的用法,用new调用多份,例如: var a=new new U.UF.UI.form(); * * @param {object} 窗体使用传参 ----------min 是否允许最小化 ----------max 是否允许最大化 ----------id 窗体id ----------style 窗体的样式 ----------content 窗体的内容 ----------title 窗体的标题 ----------hst 标题设置 ----------bst 内容设置 ----------draw 是否允许拉伸 * @return {object} 窗体本身 */ new U.UF.UI.form.init = function (UDE) { //初始化 U.UF.C.AddObj(this, UDE); return this; } new U.UF.UI.form.et = {}; //所有窗体集合 //窗体使用函数 new U.UF.UI.form.init.prototype = { et: new U.UF.UI.form.et, //所有窗体集合 //构建元素 create: function () { var i, _USE, _UDOD, _UDTD, _UDSD, _UAE, _UTE = this, _UTI = this.title, //标题元素 _UCT = this.content, //内容元素 _UCE = [ ["H", "up"], ["HL", "topRight"], ["HR", "topleft"], ["ML", "left"], ["MR", "right"], ["B", "down"], ["BL", "bottomLeft"], ["BR", "bottomRight"] ]; if (this.id && this.et[this.id] && this.et[this.id].form.id == this.id) { //无需创建 _UTE = this.et[this.id]; //获取当前窗体属性 _UTE.form.style.cssText = ""; (_UTE.body) && (_UTE.body.style.cssText = ""); U.selectEl(_UTE.form).addAttrArray({ className: this.className ? this.className : "UD_SYF_S UD_SYKO", //css样式名"UD_SYF_S UD_SYKO" close: U.UF.C.apply(_UTE, _UTE.shut), "__top__": this.top ? "false" : "", //是否允许点击置顶 "__right__": this.right || "", usform: "true", //设置窗体属性 "id": this.id || "", //绑定继承ID "style": this.style || {} }); ($(_UTE.body).addAttrArray(this.bst)); (_UTI && (_UTE.title = _UTI)) && (U.UF.C.isString(_UTI) ? (_UTE.head.innerHTML = _UTI) : (_UTE.head.innerHTML = "", U.selectEl(_UTE.head).append(_UTI))); //重新设置标题 (_UCT && (_UTE.content = _UCT)) && (U.UF.C.isString(_UCT) ? ((U.UF.C.isUrl(_UCT)) ? "" : _UTE.body.innerHTML = _UCT) : (($(_UCT).Parent() != _UTE.body) && (_UTE.body.innerText = "", U.selectEl(_UTE.body).append(_UCT)))); //内容设置 _UDOD = _UTE.form; } else { //创建窗体 (this.form = _UDOD = $$("div", { //创建元素 className: this.className ? this.className : "UD_SYF_S UD_SYKO", //css样式名"UD_SYF_S UD_SYKO" close: function(){this.shut();}, "__top__": this.top ? "false" : "", //是否允许点击置顶 "__right__": this.right || "", usform: "true", //设置窗体属性 "id": this.id || "", //绑定继承ID "style": this.style || {} })).onresize = U.UF.C.apply(this, [[this.size]]); //设置元素变化事件 (this.attr) && ($(this.form).addAttrArray(this.attr)); if (this.title !== false) { this.head = _UDTD = $$("div", { className: "UD_SYF_ST", onmousedown: function(){U.UF.F.DragMouseDown(_UDOD, null, this);} //窗体拖动//鼠标事件按下发生 }, _UDOD); //重载hst为headerStyle,更加语义化. (this.headerStyle) && ($(_UDTD).addAttrArray(this.headerStyle)); (this.hst) && ($(_UDTD).addAttrArray(this.hst)); //给标题头部添加样式 (_UTI != null) && ($(_UDTD).append(_UTI)); //添加头部 } else if (this.draw !== false) { _UDOD.onmousedown = function(){U.UF.F.DragMouseDown(_UDOD);}; //窗体拖动 } if (this.content !== false) {//判断元素是否有bst,添加 _UDTD = $$("div", { className: "UD_SYF_SC" }, _UDOD); this.body = _UDTD = $$("div", { usbody: "true", className: "UD_SYF_SCO" }, _UDTD); (this.bst) && ($(this.body).addAttrArray(this.bst)); U.selectEl(_UDTD).bind("scroll", function(){this.scroll();}); //避免闭包耗费资源。 //iframe的处理方式 if (_UCT != null) { if (U.UF.C.isUrl(_UCT)) { $$("iframe", { scrolling: this.Scroll || "no", frameBorder: 0, width: "100%", height: "100%", src: _UCT }, _UDTD); } else if (_UCT) { (this.bst) && ($(_UDTD).addAttrArray(this.bst)); if (U.UF.C.isString()) {//添加内容 _UDTD.innerHTML = _UCT; } else { U.selectEl(_UDTD).append(_UCT); //添加所选元素 } } } } this.zie = _UAE = {//添加属性size fun: function(){this.size();} }; _UDTD = $$("div", {//创建_UDTD添加到_UDOD className: "UD_W_WT"//添加CLASS属性 }, _UDOD); if (this.draw !== false) { for (i = 0; i < _UCE.length; i++) { $$("div", { className: "UD_W_WT_" + _UCE[i][0], onmousedown: [//鼠标事件 [U.UF.F.RCDG, [_UDOD, _UCE[i][1], _UAE]] ] }, _UDTD); } } //允许拉伸 U.selectEl(this.SO ? (this.SO[0] || this.SO) : ($("#UD_SY")[0] || document.body)).append(this.form, 0, this.SO ? this.SO[1] : null); _USE = this.head ? U.UF.EL.getElementInfo(this.head) : null; _UDSD = $$("div", { className: "UD_SYF_SCA", style: { "lineHight": _USE ? _USE.CH + "px" : "", "top": _USE ? Math.ceil((_USE.OH - 20) / 2) + "px" : "15px" //定义高度属性为(_USE.OH - 20) / 2 } }, _UDOD); //添加至_UDOD //功能将处理 (this.htask) && ($(_UDSD).addAttrArray(this.htask)); (this.close !== false) && (this.close = this.close || {}, this.cl = $$("div", { className: "UD_SYF_SS U_Boom_Img_ys2017", title: "点击关闭", onmousedown: U.UF.EV.stopBubble, onclick: function(){this.shut();} }, _UDSD)); _USE = this.et[this.id] = this; //最大化最小化的按钮 (this.max !== false) && (this.max = this.max || {}, this.m = _UDTD = $$("div", { className: "UD_SYF_SD U_Boom_Img_ys2017", title: "最大化", onmousedown: U.UF.EV.stopBubble }, _UDSD), _UDTD.onclick = U.UF.C.apply(null, [ [U.UF.F.windowZooming, ([_UDOD, _UDTD, { fun: U.UF.C.apply(this, [ [this.size] ]) }, this.head || _UDOD, { "onmousedown": (this.head || _UDOD).onmousedown }])] ]), (this.head) && (this.head.ondblclick = U.UF.C.apply(this.head, function () { (event.srcElement == this || U.UF.EL.isChild(this, event.srcElement)) && (_UDTD.onclick()); }))); // (this.min !== false) && (this.min = this.min || {}, this.mi = $$("div", { className: "UD_SYF_SF U_Boom_Img_ys2017", title: "最小化", onmousedown: U.UF.EV.stopBubble, onclick: [ [U.UF.F.windowMinimize, [_UDOD]] ] }, _UDSD)); } //不允许拖动设置 (_UTE.isContain) && (((_UTE.head) && (_UTE.head.onmousedown = null)) || (_UDOD.onmousedown = null)); //$(_UDOD).css({ position: "static" }), _UAE = _UTE.style ? [_UTE.style.top, _UTE.style.left] : []; //弹出窗体 (!this.style || this.style.display != "none") && (U.UF.SI[_UAE[0] && (_UAE[0].indexOf("px") > -1 || _UAE[0].indexOf("%") > -1) || _UAE[1] && (_UAE[1].indexOf("px") > -1 || _UAE[1].indexOf("%") > -1) ? "SetDTop" : "PopupWindow"](_UDOD, true)); _UTE.form = _UDOD; //设置置顶 (_UTE.top) && ($(_UTE.form).css("zIndex", 9999)); _UTE.size(true); return _UTE; }, //关闭窗体 shut: function () { if (!this.close || !this.close.onclick || this.close.onclick(this.form) !== false) { U.UF.F.closeWindow(this.form, this.del ? this.del : null); //关闭窗体 } }, /** * 变大缩小适应 * * @param {object} 窗体使用传参 */ size: function (UTF) { if (this.draw !== false && this.max !== false || this.title !== false) { if (!(this.bst && this.bst.height) && this.form.style.height != "auto") { //判断是否为自适应 var _UH, _USE = [this.head ? U.UF.EL.getElementInfo(this.head) : [], U.UF.EL.getElementInfo(this.body)] //获取padding大小 //|| (US.height * 0.7); //等比例百分比 if (_UH = U.selectEl(this.form).height()) { U.selectEl(this.body).css("height", _UH - (_USE[0]["OH"] || 0) - (_USE[1]["PD"][0] || 0) - (_USE[1]["PD"][2] || 0) + "px"); } //大小设置 } if (UTF !== true) { //利用回调函数调用 (!this.TI && this.resize) && (this.resize.call(this, this.form, this.head, this.body)); //回调窗体变化 clearTimeout(this.TI); this.IsSize = true; this.TI = setTimeout(function(){this.sizeend();}, 0); //窗体结束调用 } } }, //大小变化结束出发 sizeend: function () { this.TI = null; (this.resizeend) && (this.resizeend(this.form)); }, //窗体变化 allSize: function () { var i, _UDE = this.et; for (i in _UDE) { if (_UDE[i].IsSize) { _UDE[i].IsSize = false; } else { _UDE[i].size(); } } }, //滚动使用 scroll: function () { if (this.s || this.ss || this.se) { (this.s) && (this.s()); (!this.iss) && (this.scrollStart()); this.iss = true; //滚动开始触发 clearTimeout(this.TI); this.TI = setTimeout(function(){this.scrollEnd();}, 0); //触发加载 } }, //滚动开始 scrollStart: function () { (this.ss) && (this.ss()); //滚动开始回调 }, //滚动结束 scrollEnd: function () { (this.se) && (this.se()); //滚动结束回调 this.iss = false; }, //滚动到底部触发 scrollBottom: function () { }, //添加属性 add: function (UDE) { U.UF.C.AddObj(this, UDE); } } /** * onload成功进入 * @param {element} 加载的元素 * @param {function} 回调函数 */ //U.UF.DL.iframeLoad.AILD = function (UDOD, cb) { // var _URS = UDOD.readyState; // (_URS == "complete" || _URS == "loaded" || _URS == null) && (UDOD.complete = "complete", UDOD.onreadystatechange = null, (U.UF.C.isFunction(cb) ? cb.call(UDOD) : function(){cb();}()), UDOD.complete = null); //} ////判断文件是否存在 //U.UF.DL.ISWJCZ = function () { // $.ajax(UURL, "", cb, "", { "type": "get" }); //} /** 设置元素loading 问题: ----添加一个参数,允许往loading中传递元素。 ----在第一个loading数据量大未出数据的时候,点第二个loading,第二个先获取到数据,会否第二个会先出效果。 ----由于第一次点击数据量大,后台是否能够第二个数据先出。 ----由于第一次点击数据量大,前台loading的效果是否支持第二以及后续点击先出。 * * @param {element} 元素 * @param {boolean} loading类型 ------------true 、 false 两种loading */ /*U.UF.DL.loading = function (UDOD, UTF) { if (UDOD) { var i, _UAE, _UDTD, _UDPD = U.selectEl(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": function(){U.UF.DL.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.UF.DL.loading.Donresize(_UDSD, UDOD, UTF); _UAE = UDOD.style; U.Json.Each(_USE,function (USV, UTP) { _USE[UTP] = _UAE[UTP]; }); //原元素缩小 (UDOD = U.selectEl(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; } }*/ /** * css动画 * * @return {array} 过渡属性的值 -----------[0] 动画的css -----------[1] 动画的回调函数 -----------[2] 兼容的前缀 -----------[3] 浏览器过渡的监视属性 -----------[4] 浏览器结束的属性 */ U.UF.C.CssAm = function () { var i, //遍历初始化 _USE = $$("div").style; //获取div的样式 //_UDE css动画属性名数组 var _UDE = { "animation": ["animation", "animationEnd", "", "webkitRequest", "webkitCancel"], "OTransition": ["-o-transition", "oTransitionEnd", "-o-", "oRequest", "oCancel"], "MozTransition": ["-moz-transition", "transitionend", "-moz-", "mozRequest", "mozCancel"], "MsTransform": ["-ms-transition", "transitionend", "-ms-"], "transition": ["transition", "transitionend", "", "r", "cancel"] } for (i in _UDE) { //循环判断兼容 if (_UDE.hasOwnProperty(i) && _USE[i] !== undefined) { _UDE[i].push(i); return _UDE[i]; } } } , Auxiliary: { an: function (UDE) { //缓存对象设置 }, slideToggle: function (UDE, UIE, UL, cb) { //下拉动画回调 this[UIE].style.cssText = UDE; (UIE == UL - 1 && cb) && (cb()); }, animate: function (UDE, UAE, UIE) {//js动画调用使用区域 var _UTF, _USE, i = UDE[0] || 0, _UL = UDE[1] || i + 1, _UTID = UDE[2], _UCB = UDE[3]; for (; i < _UL; i++) { if (UIE) { _USE = U.UF.C.JsEM(this[i], UAE, UIE); } else { _USE = UAE; _UTF = true; } this.addAttrArray(_USE, i); } if (_UTF) { (_UTID == null && _UCB) && (_UCB()); return true; } }, selectel: function (UTF, UDE) { //条件选择元素 var _UFT, i = 0, _UL = UDE.length, _UCE = [], _UAE = U.select(), _UIE = UTF.match(U.UF.S.RNum); if (_UIE) { _UIE = _UIE[0].toInt(); switch (UTF.replace(_UIE + "", "")) { case ">": i = _UIE + 1; break; case "<": _UL = _UIE; break; default: i = _UIE; _UL = i + 1; break; } } for (; i < _UL; i++) { switch (UTF) { case "even": _UFT = !(i % 2); break; case "odd": _UFT = (i % 2) > 0; break; default: _UFT = true; break; } (_UFT) && (_UCE.push(UDE[i])); _UFT = false; } return _UAE.osadd(_UCE); } } /** * css动画异步 * * @return {array} 过渡属性的值 */ U.UF.C.JsEM = function (UDOD, UDE, UHK, UTF) { var i, //遍历初始化 j, //循环初始化 _UCE, //储存字符串 _USE = [], //初始化数组 _UME = {}, //初始化对象 _UM = /[^\d-|.]+/ig, //正则表达式 _UNUM = /[\d-|.]+/ig; //正则表达式 for (i in UDE) { if (UDE.hasOwnProperty(i)) { if (i == "style") {//style的制作 _UCE = U.UF.C.jsonToStr(U.UF.C.JsEM(UDOD[i], UDE[i], UHK, true)); (_UCE.length > 2) && (_UME[i] = { "cssText": _UCE.replace(/["|{|}]+/ig, "").replace(/,/ig, ";") }); } else {//普通动画 _USE[0] = UDOD[i] || 0; _USE[1] = UDE[i]; for (j = 0; j < _USE.length; j++) { (typeof _USE[j] != "number") && (_USE[j] = Number(_USE[j].replace(_UM, ""))); } //生成位置 if (!isNaN(_USE[0])) { //动画获取 j = UTF ? U.UF.EL.styleConversion(i, true) : i; _UME[j] = _USE[0] + ((_USE[1] - _USE[0]) * UHK); _USE[1] = UDOD[i] ? UDOD : UDE; (typeof _USE[1][i] == "string") && (_UME[j] = _USE[1][i].replace(_UNUM, _UME[j])); } } } } return _UME; } /** * 动画初始化 * * @param {object} 动画设置对象 */ U.UF.C.Animation = function (UDE) { //基础对象 return new U.UF.C.Animation.init(UDE, U.UF.C.Animation.get()); } U.UF.C.Animation.get = function () { var i, j, //循环变量 _UFE, _UDE = [["r", "cancel"], ["", "moz", "webkit", "o"]]; //兼容 //获取兼容字符串 for (i = 0; i < _UDE[0].length; i++) { for (j = 0; j < _UDE[1].length; j++) { if (_UFE = window[_UDE[1][j] + (j ? _UDE[0][i].replace(/\b(\w)|\s(\w)/g, function (e) { //通过循环和获取 每次获取的时候利用首字母大写设置 return e.toUpperCase(); }) : _UDE[0][i]) + "AnimationFrame"]) { _UDE[0][i] = _UFE; break; }; } } _UDE = _UDE[0]; (typeof _UDE[0] == "string") && (_UDE[0] = _UDE[1] = null); return _UDE; } /** * 获取鼠标位置 * * @param {object} 对象 */ U.UF.C.Animation.init = function (UDE, USE) {//动画初始化 U.UF.C.AddObj(this, UDE); //添加动画对象 this.type = USE || U.UF.C.Animation.get(); this.sm = (USE && USE[0]) ? new Date() : Math.ceil(this.ti / 20); //动画开始的时间 this.start(USE); //开始动画 } //动画方法 U.UF.C.Animation.init.prototype = { start: function (USE) {//这里开始了动画 var _UFN = (USE || this.type)[0]; this.tm = (_UFN ? _UFN(function(){this.time();}) : window.setInterval(function(){this.time(true);}, 20)); //动画使用开始 }, time: function (UTF) {//动画运行 var _UTI, _UJT, _UST; if (UTF == true) { //普通计时器动画 _UTI = 20 / this.ti; (this.ti <= 0) && (this.stop(), _UTI = null); this.cb(_UTI); this.ti -= 20; } else {//利用重绘动画使用 _UTI = new Date(); //据偶去当前的时间 _UJT = _UTI - this.sm; _UST = _UJT / this.ti; this.sm = _UTI; //时间的变化 this.ti -= _UJT; //总时间的减少 (this.ti <= 0) && (_UST = null, this.stop()); //调用停止函数 (_UST !== 0) && (this.cb(_UST)); //结束的回调 (_UST !== null) && (this.start()); //重复调用 } }, stop: function () {//动画结束 (this.type[1] || window.clearInterval)(this.tm); } } /** * HTML模版页面 支持js内置 类似于js上的php ejs * * @param {element} 需要变化的元素 * @param {object} 传参对象 */ U.UF.C.Simulation = function (UDOD, UDE) { new U.UF.C.Simulation.init(UDOD, UDE).exec(); } /** * 初始化HTML模版页面 支持js内置 类似于js上的php ejs * * @param {element} 需要变化的元素 * @param {object} 传参对象 */ U.UF.C.Simulation.init = function (UDOD, UDE) { this.el = UDOD; // U.UF.C.AddObj(this, UDE); return this; } U.UF.C.Simulation.init.prototype = { //正则配置 config: { m: /^\\<{+([\s\S])+\\}>$/, // /\+=([\s\S])+?\+$/g zs: "+=", ze: "+", c: /\\/g, d: /(?=["])/g, s: "<{", e: "}>", f: "%", t: "([\\s\\S])*?" }, //执行 exec: function () { try { var i, _UCS = "", _UPE = [], _UT = this, _UKE = this.key, _UCE = this.config, _USE = (this.el.innerHTML || this.el).trim(" ").replace(_UCE.c, "\\\\").replace(_UCE.d, "\\").replace(this.getConfig("\\\\", "", "", "\\\\"), function (UST) { //配置输出查看 return UST.replace("\\" + _UCE.s, _UCE.s.replaceHtmlSign()).replace("\\" + _UCE.e, _UCE.e.replaceHtmlSign()); }); //函数匹配区域 _USE = _USE.replace(this.getConfig("", "", _UCE.f), function (UST) { return UST.replace(_UCE.s + _UCE.f, "\";").replace(_UCE.e, ";uhtml+=\""); }); _USE = _USE.replace(this.getConfig(), function (UST) { return "\"+" + ((UST.replace(_UCE.s, "").replace(_UCE.e, "").replace(_UT.re("\\" + _UCE.zs + _UCE.t + "\\" + _UCE.ze), function (UST) { return UST.replace(_UCE.zs, "").replace(_UCE.ze, "").replaceHtmlSign(); })) || "\"\"") + "+\""; }); //配置html输出区域 _USE = 'var uhtml="' + _USE + '"; return uhtml;'; //变量传参 if (_UKE) { for (i in _UKE) { (_UKE.hasOwnProperty(i)) && (_UCS += (_UCS ? "," : "") + i, _UPE.push(_UKE[i])); } }; _USE = Function(_UCS, _USE).apply(this.that || this, _UPE); //利用函数执行回调处理 (this.cb) && (this.cb(_USE)); //获取模版回调 } catch (e) { throw new Error(e); } }, /** * 获取正则 * * @param {string} 正则字符串 */ re: function (URE) { return new RegExp(URE, "g"); }, /** * 初始化HTML模版页面 支持js内置 类似于js上的php ejs * * @param {string} 正则开头 * @param {string} 正则结束 * @param {string} 正则中间的内容 * @param {string} 正则结束的内容 * @return {string} 正则内容 */ getConfig: function (US, UE, UOS, UOE) { //获取系统配置 var _UCE = this.config; return this.re((US || "") + _UCE.s + (UOS || "") + _UCE.t + (UOE || "") + _UCE.e + (UE || "")); }, getHtml: function () { //获取生成的html代码 }, /** * 正则对象 * * @param {object} 正则设置 */ set: function (UDE) { //设置config var i, _UCE = this.config; for (i in _UCE) { (UDE.hasOwnProperty(i)) && (UDE[i] = _UCE[i]); } return this; } } //#region 处理了用户是否活动在当前页面的处理,当用户活动到当前页面的时候则五秒刷继续运行,当用户没有聚焦五秒刷取消 ///** //*用户页面状态使用次数 统计页面计数 配合统一账号 同一浏览器多登问题 //*本地存储方式进行存储数据 不污染cookie //*/ //U.MD.D.record = function () { // //本地存储需要有一套完整的数据结构及方案。暂时放这里,没用到。 // U.MD.D.LocalStorage = U.DW.local(); //初始化本地存储 // U.MD.D.LocalStorage.set("user", { value: "" }); //设置用户访问值 // U.MD.D.LocalStorage.remove("fm"); //清除前面记录 // U.MD.D.LocalStorage.set("ati", Number(U.MD.D.LocalStorage.get("ati") || 0) + 1); //添加页面访问值 //} ///** //* 页面聚焦使用 //*/ //U.MD.D.focus = function () { // U.MD.D.LocalStorage.off(); //取消页面消息通知 // U.MD.C.T.onesetInterval(); //启动页面数据更新 //} ///** //* 页面失去焦点使用 //*/ //U.MD.D.blur = function () { // U.MD.D.LocalStorage.on(U.MD.D.Asynblur); //重新检视页面 // if (U.MD.D.LocalStorage.get("ati") > 0) { // U.MD.C.T.ClearInterval(); //清理页面数据获取 // } //} ///** //* 这里为数据异步 使得各个页面 共享数据 一个浏览器允许多登 数据共享处理 //*/ //U.MD.D.Asynblur = function (errorobj) { // var _userid = US.userInfo.userid; //用户ID // var _value = U.UF.C.strToJson(errorobj["newValue"]); //获取页面值 // if (U.MD.D.LocalStorage.get("ati") > 0) { //如果活动数大于0 停止这个页面活动 // U.MD.C.T.ClearInterval(); // } // else { //页面活动设置 // U.MD.C.T.onesetInterval(); // } // //数据共享分类处理 // switch (errorobj.key) { // case "fm": //好友消息数据共享处理 // if (_value.uid == _userid) { // U.MD.F.N.asynMessageService(_value, true); // } // break; // case "user": //用户数据 // if ((_value.uid == _userid) && _value.value == "upline") { // U.MD.U.LO.emptyUserInfo(); // } // break; // } //} //#endregion //#region 错误区域,需要在界面中显示,如何显示,先设计,后制作功能。然后重写一个函数,不需要类。 //错误区域初始化 U.A.Error = function () { return new U.A.Error.init(); } //生成错误对象 错误对象的实例 U.A.Error.init = function () { this.State = this.LogID = this.Value = this.Dt = this.Type = null; } U.A.Error.init.prototype = { /** * 判断对象是否为错误对象 * * @return {object} json值 */ isError: function (UDE) { if (U.UF.C.isObject(UDE)) { //判断是否为对象 for (var i in this) { if (this.hasOwnProperty(i) && !(i in UDE)) { return false; } } return true; } return false; }, /** * 设置错误 * * @return {object} 错误值 */ set: function (UDE) { U.UF.C.AddObj(this, UDE); //根据错误值添加错误 return this; } } //#endregion //#region ajax post请求 /** * post请求 * @param {object} 传参 ----------[url] 请求的地址 ----------[parameter] 请求的参数 ----------[_context] 请求的回调参数 ----------[cb] 回调函数 * @return {object} post对象 */ U.A.Post = $.Post = function (UDE) { var _UTE = new U.A.Post.init(UDE); //初始化对象 _UTE.send(); //发送请求 return _UTE; } /** * 初始化post对象 * */ U.A.Post.init = function (UDE) { U.UF.C.AddObj(this, UDE); } U.A.Post.init.prototype = { //发送请求 send: function () { var i, _UDE = [], _URL = this.url, //请求的地址 _UPE = this.parameter, //请求参数 _UCE = this.context; //请求传参 //添加参数 if (_UPE) { for (i in _UPE) { if (_UPE.hasOwnProperty(i)) { _UDE.push($$("input", { "name": i, "value": _UPE[i] })); } } } //发送消息 U.UF.UP.inputUpload(_UDE, U.UF.C.apply(this, function () { this.success(); }), _UCE, _URL, null, "application/x-www-form-urlencoded"); }, /** * psot请求成功回调 * @param {object} 数据 */ success: function (UDE) { //异步回调 (this.cb) && (this.cb(UDE)); } } //#endregion /** * 把json字符串转化成json * * @param {string} 需要判断的对象 * @return {object} 返回成功过生成后的对象 支持无线树 */ U.UF.C.strToJson = function (obj) { //obj json字符串 var i; //循环初始化 if (U.UF.C.isString(obj)) { obj = obj.parseJSON(); } if (Array.isArray(obj)) { //设置数组 for (i = 0; i < obj.length; i++) { if (U.UF.C.isString(obj[i])) { obj[i] = obj[i].parseJSON(); } if (Array.isArray(obj[i])) { U.UF.C.strToJson(obj[i]); } } } return obj; } //暂时先屏蔽 网上很少使用 //outerText 最初是由 IE4.0 浏览器实现的私有属性,只有 Firefox 不支持该属性 //兼容outerText // if (!!document.getBoxObjectFor || window.mozInnerScreenX != null) {//判断是否为firefox // HTMLElement.prototype.__defineSetter__("outerText", function (str) { // var parsedText = document.createTextNode(str); //创建文本节点 // this.parentNode.replaceChild(parsedText, this); //用创建的文本节点代替this // return parsedText; // }); // HTMLElement.prototype.__defineGetter__("outerText", function () { // var r = this.ownerDocument.createRange(); //在这个元素的根元素创建一个(Range 对象) // r.selectNodeContents(this); //设置该范围的边界点,使它包含指定节点的子孙节点,但不包含指定的节点本身;参数->其子节点将成为当前范围的内容的节点 // return r.toString(); //把一个逻辑值转换成字符串,并返回结果 // }); // } //暂时先屏蔽 // if (!("componentFromPoint" in HTMLElement.prototype)) {//通过特定事件返回对象在指定坐标下的位置 // U.UF.EV.boundProperties(HTMLElement.prototype, "componentFromPoint", function () {//componentFromPoint("指定x的客户端窗口的坐标","指定y的客户端窗口的坐标") // return function () { // var _UE = U.UF.C.GetMousep(); // var _UDE = U.UF.EL.getElementInfo(this); // if ((_UE["X"] > _UDE["CW"] + _UDE["TX"]) || (_UE["Y"] > _UDE["CH"] + _UDE["TY"])) { // return "outside"; // } // return ""; // } // }, // function () { }); // } //IE的script元素支持onreadystatechange事件,不支持onload事件. //FF的script元素不支持onreadystatechange事件,只支持onload事件. // if (!("onreadystatechange" in HTMLElement.prototype)) {//判断是否是firefox // U.UF.EV.boundProperties(HTMLElement.prototype, "onreadystatechange", function () { // return this.onload; // }, // function (cb) { // this.onload = cb; // }); // } // function loadJS(url, success) { // var domScript = document.createElement('script'); // domScript.src = url; // success = success || function () { }; // domScript.onload = domScript.onreadystatechange = function () { // if (!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState) { // success(); // this.onload = this.onreadystatechange = null; // this.parentNode.removeChild(this); // } // } // document.getElementsByTagName('head')[0].appendChild(domScript); // } // if (!("setCapture" in HTMLElement.prototype)) {//判断是否是firefox // U.UF.EV.boundProperties(HTMLElement.prototype, "setCapture", function () { // return function () { window.captureEvents(Event.MOUSEMOVE); } //firefox对于鼠标事件的捕捉 // }, // function () { }); } // // if (!("releaseCapture" in HTMLElement.prototype)) {//判断是否是firefox // U.UF.EV.boundProperties(HTMLElement.prototype, "releaseCapture", function () { // return function () { // window.releaseEvents(Event.MOUSEMOVE); // } // }, // function () { }); // } //setCapture和window.captureEvents(Event.MOUSEMOVE)的兼容 // if (!("event" in window.constructor.prototype)) {/*检测浏览器是否支持鼠标键盘事件*/ // U.UF.EV.boundProperties(window.constructor.prototype, "event", function () { // var _UDE = arguments.callee; //arguments.callee ->指向参数arguments对象的函数 // while (_UDE.caller) {//一直往上寻找直到 寻找到顶层作用域 返回null 再往下执行 // _UDE = _UDE.caller; // } // return _UDE.arguments ? _UDE.arguments[0] : null; //arguments 是一个对应于传递给函数的参数的类数组对象。 // }, function () { }); // } // if (!("srcElement" in window.Event.prototype)) { // U.UF.EV.boundProperties(window.Event.prototype, "srcElement", function () { // return event.target; // }, // function () { }); // } //srcElement 和 target 的兼容 // var theEvent = window.event || arguments.callee.caller.arguments[0]; //arguments.callee.caller.arguments[0]相当于firefox的获取event // var srcElement = theEvent.srcElement; //捕获当前事件作用的对象 // if (!srcElement) {//Firefox不兼容srcElement // srcElement = theEvent.target; //Firefox兼容target // } // if (!("keyCode" in window.Event.prototype)) { // U.UF.EV.boundProperties(window.Event.prototype, "keyCode", function () { // return event.which; // }, // function () { }); // } //keyCode - 兼容chrom和Firefox // HTMLElement.prototype.__defineGetter__("onmousewheel", function () { // return this.onwheel; // }); // HTMLElement.prototype.__defineSetter__("onmousewheel", function (cb) { // this.onwheel = cb; // }); // if (!("onmousewheel" in HTMLElement)) { // if ("onwheel" in HTMLElement.prototype) { // U.UF.EV.boundProperties(HTMLElement.prototype, "onmousewheel", function () { // return this.onwheel; // }, // function (cb) { // this.onwheel = cb; // }); // } // else { // //firefox支持onmousewheel // if (browser.firefox) { // (function () { // window.addEventListener("DOMMouseScroll", function (UE) { // //监控Scroll事件 // var _UOE = null // , _UDOD = UE.srcElement; // do { // _UOE = U.selectEl(_UDOD).attr("onmousewheel") || _UDOD.onmousewheel; // _UDOD = U.selectEl(_UDOD).Parent(); // } while (!(_UOE || !_UDOD)); //冒泡的顶部获取 // if (_UOE) { // (typeof _UOE == "string") && (_UDOD.onmousewheel = new Function(_UOE)); // U.M.StopDefault(); // //阻止页面固定事件 // setTimeout(function () { // _UOE.call(this, UE); // } // , 0); // //异步执行 解决锁定的bug // } // } // , false); // } // )(); // } // } // } //------------------------------------------------------------------------------------------ // if (!("innerText" in HTMLElement.prototype)) {/*检测浏览器是否支持innerText这个方法*/ // U.UF.EV.boundProperties(HTMLElement.prototype, "innerText", // function () { // return this.textContent; // }, // function (UDE) { // this.textContent = UDE; // } // ); // } //------------------------------------------------------------------------------------------ // if (!("outerHTML" in HTMLElement.prototype)) {/*检测浏览器是否支持outerHTML这个方法*/ // U.UF.EV.boundProperties(HTMLElement.prototype, "outerHTML", // function () { // var _UDOD = this.cloneNode(true), // _UDTD = $$("div", {}); // _UDTD.appendChild(_UDOD); // return _UDTD.innerHTML; /*如果不支持就使用innerhtml插入*/ // }, // function (UTH) { // var i, _UDOD = U.selectEl(this), _UDPD = _UDOD.Parent(), _UDCD = $$("div", { // "innerHTML": UTH // }).childNodes, _UDTD = document.createDocumentFragment; // for (i = 0; i < _UDCD.length; i++) { // _UDTD.appendChild(_UDCD[i]); // } // ; _UDTD.insertBefore(_UDTD, this); // _UDOD.remove(); // } // ); // } //------------------------------------------------------------------------------------------ // if (!("outerText" in HTMLElement.prototype)) {/*检测浏览器是否支持outerText这个方法*/ // U.UF.EV.boundProperties(HTMLElement.prototype, "outerText", // function () { // var _UDOD = this.cloneNode(true) // , _UDTD = $$("div", {}); // _UDTD.appendChld(_UDOD); // return _UDTD.innerText; /*如果不支持就使用innerText插入*/ // }, // function (UTH) { // var i, _UDOD = U.selectEl(this), _UDPD = _UDOD.Parent(), _UDCD = $$("div", { // "innerText": UTH // }).childNodes, _UDTD = document.createDocumentFragment; // for (i = 0; i < _UDCD.length; i++) { // _UDTD.appendChild(_UDCD[i]); // } // _UDTD.insertBefore(_UDTD, this); // _UDOD.remove(); // }); // } //------------------------------------------------------------------------------------------ // if (!("currentStyle" in HTMLElement.prototype)) { // U.UF.EV.boundProperties(HTMLElement.prototype, "currentStyle", function () { // return getComputedStyle(this, false); // }, // function () { }); // } //------------------------------------------------------------------------------------------ // if (!("onresize" in HTMLElement.prototype) || !browser.msie) {//HTMLElement.prototype内没有onresize 则执行这个函数 // U.UF.CP.onresize = function (UDOD, UDTD, cb) { // Size事件设置 // if (cb) { // UDOD.contentDocument.defaultView.onresize = function () { U.UF.C.apply(UDTD, [[cb]])(); } // // } // else { // try { // delete this.__SizeElement__; // } catch (e) { } // } // } // U.UF.EV.boundProperties(HTMLElement.prototype, "onresize", function () { // try { // this.__SizeElement__.contentDocument.defaultView.onresize; // } catch (e) { // return null; // } // }, // function (cb) { // if (this.tagName) { // 设置Set事件 // var _UDOD = this.__SizeElement__; // (U.UF.EL.getStyle(this, "position") == "static") && (this.style.position = "relative"); // if (!_UDOD || U.selectEl(_UDOD).Parent() != this && cb) { // _UDOD = this.__SizeElement__ = $$("object", { // "onload": function(){U.UF.CP.onresize(this, this, cb);}, // "type": "text/html", // "data": "about:blank", // "style": { // "cssText": "display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;visibility:hidden;margin:0;padding:0;" // } // }, this)[0]; // } // else { // U.UF.CP.onresize(_UDOD, this, cb); // } // } // }); // } // if (!("componentFromPoint" in HTMLElement.prototype)) { // --------- 上面有重复代码 // U.UF.EV.boundProperties(HTMLElement.prototype, "componentFromPoint", function () { // return function () { // var _UE = U.UF.EL.getMousePosition(); // var _UDE = U.UF.EL.getElementInfo(this); // if ((_UE["X"] > _UDE["CW"] + _UDE["TX"]) || (_UE["Y"] > _UDE["CH"] + _UDE["TY"])) { // return "outside"; // } // return ""; // } // }, // function () { }); // } /** * loading变化设置 * @param {element} 当前loading元素 */ /*U.UF.DL.loading.Donresize = function (UDOD, UDTD, UTF) { if (UDOD["P"] > -1) { //loading变化设置 var _UDAD = U.selectEl("div", UDOD), _UH = U.selectEl(UDOD).height() - _UDAD[0].offsetHeight; //loading大小变化 _UDAD[0].style.top = (_UH > 0 ? _UH : 0) / 2 + "px"; //loading图片位置设定 } else { //取消loading U.UF.DL.uploading(UDOD); } }*/ /** * 取消loading * @param {element} 当前loading元素 */ /*U.UF.DL.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; } }*/ ////#region 出让命名空间 ////出让命名空间 ////只有外部项目才会使用 为了和其他框架兼容的方案 //$.noConflict = function (UDE) { // var _UDE = window.U.Json_; // if (_UDE && _UDE != $) { // window.U.Json_ = window.$; window.$ = _UDE; // return window.U.Json_; // } // return $; //} ////#endregion // filter: function (UTF, UDE) {//结果集筛选 // UDE = UDE || this; var _UTF, _UCE = [], j, i = 0; if (typeof UTF == "string") { UTF = this.getValue(UTF) } //处理制定的选择 转化成可识别选择 // for (i = 0; i < this.length; i++) { // for (j in UTF) { if (UTF.hasOwnProperty(j)) { if (this[i][j] != UTF[j]) { break; } } } // (this[i][j] == UTF[j]) && (_UCE.push(this[i])); // } // return U.select().osadd(_UCE); //添加子元素到制定的位置 // }, // siblings: function (UIE) { //当前元素所有的兄弟节点 // var i, _UDE = ["preva", "next"], _UAE = U.select(); // for (i = 0; i < _UDE.length; i++) { this.celement(_UDE[i] + "All", UIE, _UAE); } // return _UAE // }, // celement: function (UTP, UIE, UAE) { //获取元素 // var _UDOD, j, i = UIE || 0, _UL = UIE + 1 || this.length, _UTF = { "prevaAll": "previousSibling", "nextAll": "nextSibling"}[UTP]; UTP = _UTF || UTP; UAE = UAE || U.select(); // for (i = 0; i < _UL; i++) { //获取指定元素结果 // j = 1; _UDOD = this[i]; while ((j > 0 || (_UTF && _UDOD)) && _UDOD[UTP]) { // do { _UDOD = _UDOD[UTP]; } // while (_UDOD && _UDOD.nodeType !== 1); // (_UDOD) && (UAE[UAE.length++] = _UDOD); // j--; // } // } // return UAE; // }, // ofparent: function (UIE, UTF) {//获取offsetParent // var i = UIE || 0, _UL = UIE + 1 || this.length, UAE = U.select(); // for (i = 0; i < _UL; i++) { UAE[UAE.length++] = U.UF.EL.offsetParent(this[i]); } // return UAE; // }, // prevaAll: function (UIE) {//当前元素之前所有的兄弟节点 // return this.celement("prevaAll", UIE); // }, // nextAll: function (UIE) { //当前元素之后所有的兄弟节点 // return this.celement("nextAll", UIE); // }, // replaceAll: function (UDE, UIE) { // var _UME, i = UIE || 0, _UL = UIE + 1 || 1; // for (; i < _UL; i++) { // if (U.UF.C.isString(UDE)) { _UME = $$(UDE); } else { _UME = U.select(UDE).clone(true); } // this.Parent(1, i).replaceChild(this[i], _UME); // } // }, // even: function () { //获取偶数元素 // return this.Auxiliary.selectel("even", this); // }, // odd: function () { //获取奇数元素 // return this.Auxiliary.selectel("odd", this); // }, // eq: function (UIE) { //索引制定位置的元素 // return this.Auxiliary.selectel("=" + UIE, this); // }, // gt: function (UIE) { //索引大于的元素 // return this.Auxiliary.selectel(">" + UIE, this); // }, // lt: function (UIE) {//索引小于的元素 // return this.Auxiliary.selectel("<" + UIE, this); // }, // each: function (cb, UDE) { //遍历数据 // if (cb) { var i; UDE = UDE || this; for (i = 0; i < UDE.length; i++) { cb(i, UDE[i]); } } // }, // only: function (UIE) { //选择没有兄弟节点的元素 // var i, j, _UCE, _UPE, UL = UIE + 1 || this.length; // for (i = 0; i < UL; i++) { _UCE = this.parentElement(1, i).Child(); (_UCE.length != 1 || _UCE[0] != this[i]) && (this.del(i, true)); } // this.del(); return this; // }, // checked: function (UIE) {//获取所有给单选或者复选的元素 // var _UCE, j, i = UIE || 0, _UL = UIE + 1 || this.length, _UVE = U.select(); // for (i = 0; i < _UL; i++) { // _UCE = U.select("input@type=checkbox", this[i]); //获取复选框 // for (j = 0; j < _UCE.length; j++) { (_UCE[j].checked) && (_UVE.osadd(_UCE[j])); } //添加所有给复选的元素 // } // return _UVE; // }, // selected: function (UIE) {//获取下拉列表中给选择的元素 // var _UCE, j, i = UIE || 0, _UL = UIE + 1 || this.length, _UVE = U.select(); // for (i = 0; i < _UL; i++) { } // }, // before: function (UDOD, UIE) { //被选择元素前插入指定元素 // var i = UIE || 0, _UL = (UIE || 0) + 1; // for (; i < UIE; i++) { this.append(UDOD, i, this[i].firstChild); } // }, // top: function (UIE) { //获取offsetTop // return this[UIE || 0].offsetTop; // }, // left: function (UIE) { //获取offsetLeft // return this[UIE || 0].offsetLeft; // }, // width: function (UIE) {//获取长 // return U.UF.EL.getElementRealWidth(this[UIE || 0]); // }, // innerWidth: function (UIE) { //获取内宽度 包含padding // return this[UIE || 0].clientWidth; // }, // outerWidth: function (UIE, UTF) { //获取整体宽度 包含 padding border ture包含margin // this[UIE || 0].offsetWidth + this.css("marginLeft") + this.css("marginRight"); // }, // height: function (UIE) { //获取宽 // return U.UF.EL.getElementRealHeight(this[UIE || 0]); // }, // innerHeight: function () { //内高度 // return this[UIE || 0].clientHeight; // }, // outerHeight: function () { //外高度 // this[UIE || 0].offsetWidth + this.css("marginTop") + this.css("marginBottom"); // }, // replaceC: function (UDOD, UIE) { //元素顶替 // UIE = UIE || 0; var _UDPD, _UDTD = this[UIE]; // if (_UDTD) { _UDPD = this.Parent(1, UIE); (_UDPD) && (_UDPD.replaceChild(UDOD, _UDTD)); this[UIE] = UDOD; }; return this; // }, // html: function (UHT, UIE) { return UHT != null ? this.addAttrArray({ "innerHTML": UHT }, UIE) : this[UIE || 0].innerHTML; }, //获取innerhtml // text: function (UHT, UIE) { return UHT != null ? this.addAttrArray({ "innerText": UHT }, UIE) : this[UIE || 0].innerText; }, //获取innerText // getBackgroundColor: function (UDE) { //获取设置背景图片 // if (U.UF.C.isString(UDE)) { } // else if (Array.isArray(UDE)) { } // }, // first: function () { //获取结果里的第一个元素 // return U.select(this[0]); // }, // last: function () { //获取最后一个元素 // return U.select(this[this.length - 1]); // }, // transition: function (UDE, USP, cb, UIE) { //过度动画使用 // var i, j, _UDW, _UTP, _UFN, _UAE = {}, _UHE = {}, _UME = [["scale", ""], ["translate,perspective", "px"], ["skew,rotate", "deg"]], _UCE = U.UF.EL.GCssAe(); //scale // if (_UCE) {//Html5兼容 // _UTP = _UCE[2] + "transform"; _UAE[_UTP] = ""; // _UFN: for (i in UDE) { // for (j = 0; j < _UME.length; j++) { if (_UME[j][0].split(",").indexOf(i) > -1) { _UDW = _UME[j][1]; _UAE[_UTP] += i + "(" + UDE[i] + _UDW + ") "; continue _UFN; } } // _UHE[_UTP + "-" + i] = UDE[i]; // } // this.addAttrArray({ "style": _UHE }).animate(_UAE, USP, cb, UIE); //执行动画 // } // }, // slideToggle: function (UST, cb, UIE, UTF) {//滑动效果 // var j, _UTP, _UDE, _USC, i = UIE || 0, _UL = UIE + 1 || this.length, _USE = { height: "", marginBottom: "", marginTop: "", paddingBottom: "", paddingTop: "", display: "block" }, _UKE = _USE; //变化值 // for (; i < _UL; i++) { //设置动画 // _USC = this.css("cssText"); U.Json.Each(_USE,U.UF.C.apply(this, function (UAE, UIE) { if (UIE != "display") { if (UIE == "height") { _USE[UIE] = this.height() + "px"; } else { _USE[UIE] = this.css(UIE, null, i); } } })); //原初始值 // _UDE = [_USE, { "cssText": "height:0px;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;display:block;overflow:hidden"}]; //初始化隐藏动画 // if ((_UTP = (UTF === false || (UTF == null && this.css("display", "") == "none")))) { _UDE.reverse(); } //设置显示动画 // this.addAttrArray({ style: _UDE[0] }, i).animate(_UDE[1], UST, function () { this.Auxiliary.slideToggle(_USC + ";display:" + (_UTP ? "block" : "none"), i, _UL, cb); }, i); //设置出现和取消 // } // }, // ready: function (cb) { //添加doc ready函数 // var _UTF = document.attachEvent ? "readystatechange" : "DOMContentLoaded", _UCB = []; // _UCB[0] = U.UF.C.apply(document, function () { // U.UF.EV.delElementEvent(_UTF, document, _UCB); // cb() // }); // U.UF.EV.addElementEvent(_UTF, document, _UCB[0]); // }, // load: function (cb) { //load加载页面 // (!this.length) && (this.osadd(window)); var _UFN = function () { this.unbind("load", _UFN, 0); cb(); }; // this.bind("load", _UFN, 0); // }, // contents: function () { }, // message: function () { //message 事件绑定 // }, // mousedown: function (cb, UTF, UIE) { //左右事件 // (cb) && (this.bind("mousedown", function () { var _UTF = event.button; _UTF = _UTF == 2 || _UTF == 3; if (!UTF || (UTF == "right" && _UTF) || (UTF == "left" && !_UTF)) { cb(); } }, UIE)); // return this; // }, //把数据库的时间戳转换成可读时间 //1、带一个参数 //参数一:时间格式 // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间) // 2、sqlserver 时间格式 /Date(1364812396843)/ // 3、mongodb 时间格式 2018/01/01 01:01:01 // 4、mysql 时间格式 2018-01-01 01:01:01 // 5、nodejs的json时间"2018-03-04T11:14:27.878Z" //js转换mysql中datetime日期格式为00-00-00 00:00:00,转换后为:2016:11:23 09:09:09格式 //U.UF.D.formatDateToArray = function (UOD, UTF) { // var _UTP = typeof UOD == "string", // _ude = ["getFullYear", "getMonth", "getDate", "getHours", "getMinutes", "getSeconds"]; // if (!UOD || !_UTP || (_UTP && UOD.indexOf("Date") > -1)) { // UOD = _UTP ? new Date(parseInt(UOD.match(/[0-9]+/g)[0])) : (UOD || new Date()); // for (i = 0; i < _ude.length; i++) { // _ude[i] = UOD[_ude[i]]() + (i == 1 ? 1 : 0); // _ude[i] = i > 2 ? _ude[i].prefixInteger() : _ude[i]; // } // } //返回时间 // else if (_UTP) { // UOD = new Date(UOD); //获取当前的时间 // _ude = U.UF.D.formatDateToArray(UOD, true); // } //mysql返回的时间 // return (UTF ? _ude : _ude.slice(0, 3).join("-") + " " + _ude.slice(3, 6).join(":")); //返回数据 // ///Date(1364812396843)/ // //2018/01/01 01:01:01 // //2018-01-01 01:01:01 //} //U.UF.D.formatDateToArray = function (UOD, UTF) { // try { // var _UTP = typeof UOD == "string", // _ude = ["getFullYear", "getMonth", "getDate", "getHours", "getMinutes", "getSeconds"]; // if (!UOD || !_UTP || (_UTP && UOD.indexOf("Date") > -1)) { // UOD = _UTP ? new Date(parseInt(UOD.match(/[0-9]+/g)[0])) : (UOD || new Date()); // for (i = 0; i < _ude.length; i++) { // _ude[i] = UOD[_ude[i]]() + (i == 1 ? 1 : 0); // _ude[i] = i > 2 ? _ude[i].prefixInteger() : _ude[i]; // } // } //返回时间 // else if (_UTP) { // UOD = new Date(UOD); //获取当前的时间 // _ude = U.UF.D.formatDateToArray(UOD, true); // } //mysql返回的时间 // return (UTF ? _ude : _ude.slice(0, 3).join("-") + " " + _ude.slice(3, 6).join(":")); //返回数据 // } catch (e) { return UOD; } //} /*-----------------------------------------------未使用的函数------------------------------------------*/ //js倒计处理 U.UF.D.DJS = (function () { var _UFN = function (UDE, fun) { var _UTF = false, _UL = UDE.length - 1, i = _UL, _UCE = [1, 24, 60, 60]; for (; i > -1; i--) { if (UDE[i] > 0) { UDE[i]--; if (i < _UL) { UDE[i + 1] = _UCE[i + 1] - 1; } _UTF = !_UTF; break; } } (_UTF) && ((fun) && (fun(UDE)), setTimeout(function () { _UFN(UDE, fun) }, 1000)); //回调计时 } //设置时间 return function (UTM, fun) { var i, j, _UZ, _UKE = [60, 60, 24, 1], _ude = [], _UTS = ((new Date(UTM[0], UTM[1] - 1, UTM[2], UTM[3] || 0, UTM[4] || 0, UTM[5] || 0)) - (new Date())) / 1000; for (i = _UKE.length - 1; i >= 0; i--) { _UZ = _UTS; for (j = 0; j <= i; j++) { j == i ? _UZ %= _UKE[j] : _UZ /= _UKE[j]; } _ude.push(parseInt(_UZ, 10)); } _UFN(_ude, fun); //获取倒计时的时间 } })(); /* * 获取浏览器信息 * * @return {boolean} { chrome: true, msie:false, firefox:false, 360ee:true, ver: 36} */ //U.UF.CI.Browser = function () { //// var i, //// _UAE = U.UF.CI.userAgent, //// _USE = {}, //// _UVE = U.UF.S.browser, //区分浏览器 //// _UDE = U.UF.S.browsers, //个版本浏览器正则 //// _UCE = ["360ee", "360se", "se", "lbbrowser", "aoyou", "theworld", "worldchrome", "greenbrowser", "qqbrowser", "baidu", "MicroMessenger", "QQ", "AppleWebKit"]; //知名公司浏览器区分 //// //判断浏览器版本 //// for (i in _UDE) { //// if (_UDE.hasOwnProperty(i)) { //// _USE[i] = _UDE[i].test(_UAE); //// } //// } //// //各个公司的版本 //// for (i = 0; i < _UCE.length; i++) { //// if (_UAE.indexOf(_UCE[i]) > 0) { //// _USE[_UCE[i]] = true; //// break; //// } //// }; //// _USE.ver = _UAE.match(_UVE); //设置版本 //// return _USE; //获取内核和产商 // _bri= U.UF.CI.userAgent,//浏览器信息 // _obj = {},//空对象 用于装浏览器信息 // _bro = U.UF.S.browser, //区分浏览器 // _arr = ["360ee", "360se", "se", "lbbrowser", "aoyou", "theworld", "worldchrome", "greenbrowser", "qqbrowser", "baidu", "MicroMessenger", "QQ", "AppleWebKit"]; //知名公司浏览器区分 ////判断浏览器类型 // //各个公司的版本 // for (i = 0; i < _arr.length; i++) { // if (_bri.indexOf(_arr[i]) > 0) { // _obj[_arr[i]] = true; //如果是对应版本则为true // break;//找到对应版本后就不再循环 // } // }; // _bri= U.UF.CI.userAgent,//浏览器信息 // _bro = U.UF.S.browser, //区分浏览器 // _obj.ver = _bri.match(_bro); //设置浏览器版本等信息 // return _obj; //将信息返回 //}; /** * 添加或者删除自定义属性 * */ /*U.UF.EL.addAttributes = function (arr, name, value) { var i, //用于循环 j, //用于循环 _UAE, _UTP = UTV != null ? "setAttribute" : "removeAttribute"; //判断是设置还是删除属性 for (i = 0; i < UDE.length; i++) {// _UAE = UDE[i]; if (_UAE) { if (UCE && UCE.length) { //训话属性处理 for (j = 0; j < UCE.length; j++) { _UAE = _UAE[UCE[j]]; } } _UAE[_UTP](USN, UTV); //执行删除获取添加属性 } } } U.UF.EL.delAttributes = function (arr, name) { var i, //用于循环 j, //用于循环 _UAE, _UTP = UTV != null ? "setAttribute" : "removeAttribute"; //判断是设置还是删除属性 for (i = 0; i < UDE.length; i++) {// _UAE = UDE[i]; if (_UAE) { if (UCE && UCE.length) { //训话属性处理 for (j = 0; j < UCE.length; j++) { _UAE = _UAE[UCE[j]]; } } _UAE[_UTP](USN, UTV); //执行删除获取添加属性 } } }*/ /** * 获取元素所使用的样式 * * @param {element} 需要获取样式的元素 * @param {string} 样式的key */ /*U.UF.EL.getStyle = function (UDOD, UVE) { if (UDOD && UDOD.style) { UVE = U.UF.EL.styleConversion(UVE); return (UDOD.style[UVE] || UVE == "cssText") ? UDOD.style[UVE] : (UDOD.currentStyle ? UDOD.currentStyle[UVE] || "" : ""); } return ""; //获取js对应的style值 }*/ /** * 添加删除获取class * * @param {array} 进行操作的对象 * @param {string} 确定循环范围 * @param {element} 正则表达式 获取字符 * @param {string} 获取或删除指令 * @return {boolean} 是否存在改样式 */ /*U.UF.C.ARClass = function (UDE, UIE, UCN, UTF) { var _UCT, //储存对象样式名 _UFT, //储存索引值 _UIF, //储存索引值 i = UIE || 0; //循环初始化 _UL = UIE + 1 || UDE.length, //确定循环范围 _UL = Math.min(_UL, UDE.length); _UCE = new RegExp("(\\s|^)" + UCN + "(\\s|$)"); //需要索引的值 for (; i < _UL; i++) { _UCT = UDE[i].className; _UFT = _UCT.match(_UCE); if (UTF == "Add") { (!_UFT) && (UDE[i].className += (_UCT ? " " : "") + UCN); } //添加class else if (UTF == "RE") { //删除class (_UFT) && (_UIF = _UCT.indexOf(UCN) + UCN.length, UDE[i].className = _UCT.replace(_UCE, (_UIF == _UCT.length || !_UIF) ? "" : " ")); } } return _UFT; }*/ /* **作用:用于指定的元素进行删除指定的class,如果class存在,那么class就删除,如果class不存则不处理 **参数一:el1进行操作的对象 **参数二:el2获取className的字符 **参数三:str添加或删除指令,添加classname为Add,删除classname为Remove */ /*U.UF.C.ARClass = function (el1, el2, str) { var _Reg = el1.className.match(new RegExp("(\\s|^)" + el2 + "(\\s|$)")); // ( \\s|^ ) 判断前面是否有空格 (\\s | $ )判断后面是否有空格 var _b = !!(_Reg); //两个感叹号为转换为布尔值 以方便做判断 if (str == "Add") {//判断是否是添加classname if (!_b) {//判断元素不存在指定的class el1.className += " " + el2; //给指定的元素添加指定的class } } if (str == "Remove") {//判断是否删除classname if (_b) {//判断元素存在指定的class el1.className = el1.className.replace(new RegExp("(\\s|^)" + el2 + "(\\s|$)"), " "); // replace方法是替换 } } }*/ ///** //* 获取css3过渡动画 //* //* @return {array} 过渡属性的值 //-----------[0] 过渡的css //-----------[1] 过渡的回调函数 //-----------[2] 兼容的前缀 //-----------[3] 浏览器过渡的监视属性 //-----------[4] 浏览器结束的属性 //*/ //U.UF.EL.GCssAe = function () { // var i, //遍历初始化 // _USE = $$("div").style, //获取div的样式 // //css兼容的形式 // _UDE = { // "WebkitTransition": ["-webkit-transition", "webkitTransitionEnd", "-webkit-", "webkitRequest", "webkitCancel"], //webkit浏览器的兼容 // "OTransition": ["-o-transition", "oTransitionEnd", "-o-", "oRequest", "oCancel"], //Op 浏览的兼容 // "MozTransition": ["-moz-transition", "transitionend", "-moz-", "mozRequest", "mozCancel"], //火狐浏览器的兼容 // "MsTransform": ["-ms-transition", "transitionend", "-ms-"], //ie低版本的兼容 // "transition": ["transition", "transitionend", "", "r", "cancel"] //html5的兼容 // } // //循环判断获取 // for (i in _UDE) { // if (_UDE.hasOwnProperty(i) && _USE[i] !== undefined) { // _UDE[i].push(i); // return _UDE[i]; // } // } //} ///** //* css动画异步 //* //*/ //U.UF.EL.AsynCssEM = function (UDID, UDSD, cb, UIF, UIF) { // this.removeClass(UDID, UIF); // U.selectEl(UDSD).remove(); // (cb) && (cb(UIF)); //} // 窗体全局变量 //U.UF.F.isTop = false; //U.UF.F._closes = []; //U.UF.F._index = []; /*U.UF.F.closefun = function (UDOD) { U.UF.F._closes.splice(U.UF.F._closes.indexOf(UDOD), 1); };*/ /** * 放大窗体 * * @param {number} 数字1 * @param {number} 数字2 * @param {boolean} 返回数字1是否大于数字2 * @param {number} 数字2 * @param {boolean} 返回数字1是否大于数字2 */ /*U.UF.F.windowZooming = function (UDOD, UDTD, cb, UDOM, UST) { var _USE, _UCE, _UTE, _UTF = true, _UDTD = U.selectEl(UDOD), _UST = UDOD.style, _UED = U.UF.C.GetPDWH(UDOD), _UW = US.width, _UH = US.height; UDTD = UDTD || (event && event.srcElement); //U.UF.C.getElementInfo(UDOD) if (_UED["OW"] >= _UW && _UED["OH"] >= _UH) { _UCE = { "title": "全屏", "onmousedown": UST ? (UST.onmousedown || (UDOM ? UDOM.onmousedown : null)) : null, "style": UST ? UST["style"] || { "width": "80%", "height": "80%", "left": "10%", "top": "10%"} : { "width": "80%", "height": "80%", "left": "10%", "top": "10%"} }; _UTF = false; } else { _UTE = UDOD["style"]; _USE = { "onmousedown": UDOM ? UDOM.onmousedown : null, "style": { "cssText": _UTE["cssText"] + ";", "width": _UTE.width, "height": _UTE.height, "top": _UTE.top, "left": _UTE.left, "display": "block" }, "width": _UED["CW"], "height": _UED["CH"] }; _UCE = { "title": "缩小", "onmousedown": UDOM ? (function(){UDOM.onmousedown], [U.UF.F.DragElement(UDOD, UDTD, cb, UDOM, _USE)}) : null, "style": { "top": "0px", "left": "0px", "width": (_UW - _UED["PD"][1] - _UED["PD"][3] - _UED["BD"][1] - _UED["BD"][3]) + "px", "height": (_UH - _UED["PD"][0] - _UED["PD"][2] - _UED["BD"][0] - _UED["BD"][2]) + "px" } }; //_UED["PXT"] + _UED["PXL"] + } (UDOM) && (UDOM.onmousedown = _UCE.onmousedown); (UDTD) && ($(UDTD).addAttrArray({ "onclick": [[U.UF.F.windowZooming, [UDOD, UDTD, cb, UDOM, _USE]]], "title": _UCE["title"] })); //拖动 //全屏或者恢复调用 UDOD.style.display = "block"; $(UDOD).animate(_UCE.style, 150, function () { var _UED = U.UF.C.GetPDWH(UDOD); U.UF.F.withf(cb, [_UED["CW"], UDOD["CH"], _UTF]); }); //窗体大小设置 //回调大小设置 }*/ //最大化移动窗体 /** * 放大窗体 * * @param {number} 数字1 * @param {number} 数字2 * @param {boolean} 返回数字1是否大于数字2 * @param {number} 数字2 * @param {boolean} 返回数字1是否大于数字2 */ /*U.UF.F.DragElement = function (UDOD, UDTD, cb, UDOM, UST) { if (U.UF.F.DragMouseDown.ST) { U.UF.F.DragMouseDown.ST.set({ move: function (UTE) { //缩小使用 var _UW = US.width, _UE = U.UF.C.getMousePosition(UDOD); (!UST.width) && (UST.width = US.width * 0.8); (!UST.height) && (UST.height = US.height * 0.8); U.UF.C.AddObj(UST["style"], { "top": "0px", "left": Math.min(Math.max((_UE["X"] - UST.width / 2), 0), (_UW - UST.width)) + "px" }); //设置位置大小 U.UF.F.windowZooming(UDOD, UDTD, cb, UDOM, UST); (UTE && UTE.move) && (UTE.move = null); //设置大小 } }); } }*/ //窗体最小化 /*U.UF.F.windowMinimize = function (UDOD) { UDOD = U.selectEl(UDOD); var i, _UCE, _UW = US.width, _UH = US.height, _UGE = UDOD.getElementInfo(); _UDE = { "cssText": UDOD[0].style.cssText, "display": "none" }; UDOD.animate({ "cssText": "overflow:hidden;left:0px;top:" + ((_UH - _UGE["OH"] + 100) / 2) + "px;width:" + (Math.min(_UGE["OW"] / 3, 100)) + "px;height:" + (Math.min(_UGE["OH"] / 3, 100)) + "px;opacity:0.8" }, 200, function(){UDOD.css("cssText", _UDE.cssText]], [UDOD.css, ["display", _UDE.display);}); (parent.U.MD.N) && (setTimeout(function () { parent.U.MD.N.UrlWrite([], ""); }, 0)); } */ //关闭窗口 /*U.UF.F.closeWindow = function (UDOD, UTF) { var _UDTD = U.selectEl(UDOD); (_UDTD.css("display") != "none") && (_UDTD.fadeIn(150, UTF == "remove" ? function () { _UDTD.remove(); _UDTD = null; } : "")); //移除 (parent.U.MD.N && UTF !== true) && (parent.U.MD.N.UrlWrite([], "")); (U.D && U.MD.D.Tb && U.MD.D.T.taskbars) && (U.MD.D.T.taskbars.close(UDOD)); //异步url重写 (U.UF.F._closes.indexOf(UDOD) == -1) && (U.UF.F._closes.push(UDOD)); setTimeout(function(){U.UF.F.closefun(UDOD);}, 0); //删除处理区 } */ //窗口居中 /*U.UF.F.windowTopCenter = function (UDOD, cb) { var i, _UL, _UT, _UW, _UH, _UTF = U.selectEl(UDOD).css("display") == "none", _UDE = U.selectEl(UDOD).addAttrArray({ "style": { "display": "block"} })[0], _UDPD = U.UF.C.TOSP(UDOD), _UW = _UDPD.offsetWidth || US.width, _UH = _UDPD.offsetHeight || US.height; _UL = (_UW - _UDE["offsetWidth"]) / 2 + _UDPD["scrollLeft"]; _UT = (_UH - _UDE["offsetHeight"]) / 2 + _UDPD["scrollTop"]; if (U.UF.F._index[2] && U.UF.F._index[2] !== UDOD && Math.floor(_UL) == U.UF.F._index[2].offsetLeft && Math.ceil(_UT) == U.UF.F._index[2].offsetTop) { _UL += 20; _UT += 20; } U.UF.F._index[2] = UDOD; U.UF.F.topWindow($(UDOD).addAttrArray({ "style": { "cssText": "left:" + _UL + "px;top:" + _UT + "px;z-index:" + ((parent.US.ZINDEX ++) + 1)} })[0]); (U.UF.C.isFunction(cb)) && (cb()); (_UTF && UDOD.onresize) && (UDOD.onresize()); //定位 }*/ //窗体置顶 /*U.UF.F.topWindow = function (UDOD, UTF) { (U.UF.Ut.isEvent(UDOD)) && (UDOD = null); UDOD = UDOD || U.UF.F.GetEE(); var i, _UDPD, _UDE = U.UF.F.getWindow(UDOD); if (UTF !== true) { setTimeout(function(){U.UF.F.topWindow(UDOD || _UDE[0], true);}, 0); } else { if (_UDE && _UDE.length) { for (i = 0; i < _UDE.length; i++) { if (((_UDPD = U.selectEl(_UDE[i]).Parent()) && (_UDPD == document.body || _UDPD.id == "usestudio-server" || _UDPD.id == "UD_SY")) && U.selectEl(_UDE[i]).attr("__top__") != "false" && (!UTF == true || U.UF.F._closes.indexOf(_UDE[i]) == -1)) { //置顶判断 $(_UDE[i]).addAttrArray({ "style": { "cssText": "z-index:" + (((US || parent.US).ZV++) + 1) + ";display:block"} }) } }; } return parent.US.ZINDEX ; } } */ //获取顶层窗体 /*U.UF.F.getWindow = function (UDOD) { var i, _UCE = [], _UDTD = UDOD, _UDBD = document.body, _UDSD = U.selectEl("#UD_SY")[0] || U.selectEl("#usestudio-server")[0] || _UDBD; if (_UDSD) { while ((_UDTD = U.UF.C.TOSP(_UDTD, true, "absolute")) && (_UDTD && (_UDTD != _UDSD && _UDTD != _UDBD))) { _UCE.push(_UDTD); _UDTD = _UDTD.parentNode; } return _UCE; //.slice(0, -1); } }*/ //主处理分层次系统 /*U.UF.F.clickTopWindow._UFN = function (cb, UTF) { //处理函数 //页面置顶处理 // try { this.focus(); } catch (e) { } if (U.UF.F.isTop) { clearTimeout(U.UF.F.isTop); } else { if (UTF && !U.UF.F.isTop) { U.UF.F.isTop = setTimeout(function () { (cb || top.U.UF.F.topWindow)(null, true); U.UF.F.isTop = false; }, 0); return; } else if (!U.UF.F.isTop) { (cb || top.U.UF.F.topWindow)(null, true); (event && event.type == "mousedown") && (U.UF.F.isTop = true); } else if (U.UF.F.isTop == true) { U.UF.F.isTop = false; } } U.UF.F.isTop = setTimeout(function () { U.UF.F.isTop = false; }, 0); }*/ //获取置顶元素 U.UF.F.GetEE = function () { var _UE = window.event; if (!_UE) { return document.activeElement; } return _UE.srcElement; } ////#region 拉伸窗体 ////虚拟框 //U.UF.F.maskFrame = function () { // return $$("div", { "style": { "cssText": "width:100%;height:100%;position:absolute;top:0;left:0;"} }, document.body); //} ///* //* 拖动框 //* //* @param {element} 需要创建虚拟框的元素 //* @param {object} 元素的位置 //----------参数为getElementInfo 返回值 //*/ //U.UF.F.foundVirtualBox = function (UDOD, UE) { // UDOD = U.selectEl(UDOD); // UE = UE || UDOD.getElementInfo(); //获取元素的位置 // return $$("div", { "style": { "cssText": "pointer-events:none;border:2px solid Gray;position:absolute;top:" + (UE["OT"] - 2) + "px;left:" + (UE["OL"] - 2) + "px;width:" + (UE["OW"]) + "px;height:" + (UE["OH"]) + "px;z-index:" + (US.ZINDEX + 10)} }, UDOD.Parent()); //} ///* //* 拉伸函数处理 //* //* @param {element} 需要拉伸的元素 //* @param {function} 拉伸回调函数 //----------参数为getElementInfo 返回值 //*/ //U.UF.F.AddOM = function (UDOD, cb) { // if (!$(".UD_W_WT", UDOD)[0]) { //拉伸对象不存在 // var i, // _UTE = U.UF.F.RCDG(UDOD, null, cb), //创建拉伸处理 // _UTP = "UD_W_WT", // _UDE = [["H", "up"], ["MR", "right"], ["B", "down"], ["ML", "left"], ["HL", "topright"], ["BR", "bottomright"], ["BL", "bottomleft"], ["HR", "topleft"]], //拉伸所有的监视 和 className 的设置 // _UDTD = $$("div", { "className": "UD_W_WT" }); //新建立一个容器 // for (i = 0; i < _UDE.length; i++) { //添加上下左右处理元素 // $$("div", { "className": _UTP + "_" + _UDE[i][0], "onmousedown": _UTE.set(_UDE[i][1]) }, _UDTD); // } // UDOD.appendChild(_UDTD); //添加拉伸元素 // } //} ///* //* 拉伸执行 //* //* @param {element} 需要拉伸的元素 //* @param {string} 需要调用的回调 //* @param {function} 拉伸回调函数 //----------参数为getElementInfo 返回值 //*/ //U.UF.F.RCDG = function (UDOD, UTF, cb) { // return new U.UF.F.RCDG.init(UDOD, UTF, cb); //} ///* //* 拉伸执行 //* //* @param {element} 需要拉伸的元素 //* @param {string} 需要调用的回调 //* @param {function} 拉伸回调函数 //*/ //U.UF.F.RCDG.init = function (UDOD, UTF, cb) { //拖动的拉伸 // /* // 注释: // -----cb 回调函数 // -----UDOD 拉伸的原函数 // */ // U.UF.C.AddObj(this, { cb: cb, UDOD: UDOD }); // (UTF) && (this.set(UTF)); //设置回调 //} //U.UF.F.RCDG.init.prototype = { // /* // * 拉伸执行 // * // * @param {element} 需要拉伸的元素 // * @param {string} // * @param {function} 拉伸回调函数 // */ // set: function (UTF) { // var i, _UDMD, // _UDOD = this.UDOD, // _UE = U.UF.EL.getElementInfo(_UDOD), //当前位置 // _UDE = [["move", UTF], ["up", "mup"]]; // if (UTF && event.button != 2 && (_UE["OH"] != US.height || _UE["OW"] != US.width)) { //非右键 // //内部使用变量设置 // U.UF.C.AddObj(this, { // UMD: (_UDMD = U.UF.F.maskFrame()), //拉伸虚拟框 // UTF: UTF, //拖动时回调函数 // UTOD: U.UF.F.foundVirtualBox(_UDOD), //虚拟框 // E: _UE, //当前的位置大小 // H: _UE.H, //原高 // W: _UE.W, //原长 // T: _UE.OT, //原top // L: _UE.OL//原left // }); // this.UTOD.setCapture(); //创建使用的变量 // //虚拟框和拖动看置顶 // U.UF.F.topWindow(this.UTOD); // U.UF.F.topWindow(_UDMD); //虚拟框 // //拖动元素监视 // for (i = 0; i < _UDE.length; i++) { // document["onmouse" + _UDE[i][0]] = U.UF.C.apply(this, [[this[_UDE[i][1].toLocaleLowerCase()]]]); // } // //返回拖动对象 // return this; //设置拉伸 // } // }, // //向上拉伸 // up: function () { // var _UE = U.UF.EL.getMousePosition(), //获取鼠标的位置 // _UT = Math.min(Math.max(_UE["Y"], 0), this.T + this.H - 4), //获取拉伸头部的top位置 // _UH = this.H + (this.T - _UT); //计算高度 // U.selectEl(this.UTOD).addAttrArray({ "style": { "cssText": "top:" + (_UT - 2) + "px;height:" + (_UH) + "px"} }); //设置样式 // }, // //下面拉伸 // down: function () { // var _UE = U.UF.EL.getMousePosition(); //鼠标所在的位置 // _UE["Y"] = Math.max(Math.min(_UE["Y"], US.height), this.T); //获取拉伸的位置 // this.UTOD.style.height = (_UE["Y"] - this.T) + "px"; //拉伸后的大小处理 // }, // //左边拉伸 // left: function () { // var _UE = U.UF.EL.getMousePosition(), //鼠标所在的位置 // _UL = Math.min(Math.max(_UE["X"], 0), this.L + this.W - 4), //左边位置处理 // _UW = this.W + this.L - _UL; //长度变化 // U.selectEl(this.UTOD).addAttrArray({ "style": { "cssText": "left:" + (_UL - 2) + "px;width:" + (_UW) + "px"} }); // }, // //右边 // right: function () { // var _UE = U.UF.EL.getMousePosition(); //鼠标所在的位置 // _UE["X"] = Math.max(Math.min(_UE["X"], US.width), this.L); //右边位置处理 // this.UTOD.style.width = (_UE["X"] - this.L) + "px"; //内容大小处理 // }, // //左上 // topleft: function () { // this.up(); //向上拉伸 // this.left(); //左边拉伸 // }, // //右上 // topright: function () { // this.up(); //向上拉伸 // this.right(); //右边拉伸 // }, // //左下 // bottomleft: function () { // this.down(); //向下拉伸 // this.left(); //向左拉伸 // }, // //右下 // bottomright: function () { // this.down(); //向下拉伸 // this.right(); //右边拉伸 // }, // //结束拉伸 // mup: function () { // var i, _UPE = this.E.PD, // _UBE = this.E.BD, // _UDTD = U.selectEl(this.UTOD), //拉伸元素 // _UCE = U.UF.EL.getElementInfo(this.UTOD), //拉伸元素的大小 // _UDE = [_UCE["W"], _UCE["H"]]; // //设置得到的位置和大小 // for (i = 0; i < _UPE.length; i++) { // _UDE[(i + 1) % 2] -= (_UPE[i] + _UBE[i]); // } // //设置拉伸元素 // U.selectEl(this.UDOD).addAttrArray({ "style": { "cssText": "left:" + (_UCE["OL"] + 2) + "px;top:" + (_UCE["OT"] + 2) + "px;width:" + _UDE[0] + "px;height:" + _UDE[1] + "px"} }); //设 // //清空 // U.selectEl(_UDTD).remove(); // _UDTD[0].releaseCapture(); // document.onmousemove = document.onmouseup = null; // U.selectEl(this.UMD).remove(); // //回调设置 // U.UF.F.withf(this.cb, _UDE); //清空 //执行回调 // } //} ///* //* 回调执行 //* //* @param {object} 回调函数或者参数 //* @param {object} 回调的参数 //*/ //U.UF.F.withf = function (UAE, UDE) { // if (UAE) { // var i, j, k, _UCE, _UDOD, // _UKE = {}; // for (i in UAE) { // if (UAE.hasOwnProperty(i)) { // //处理元素共同变化处理 这个会更加最大拖拉的元素 自适应 // if (i == "with") { // for (j = 0; j < UAE[i].length; j++) { // _UCE = UAE[i][j]; // _UDOD = _UCE["Element"]; //获取需要变化的元素集 // for (k in _UCE) { // if (_UCE.hasOwnProperty(k) && k != "Element") { //变化的样式处理 // _UKE[k] = _UCE[k] + UDE[k == "width" ? 0 : 1]; // } // } // U.selectEl(_UDOD).addAttrArray({ style: _UKE }); // } // } // //直接回调自己处理 // else { U.UF.C.apply(null, UAE[i])(UDE); } //执行回调 // } // } // } //} ////#endregion /** * style样式转换 如 text-align => textAlign 或者相反的换 * * @param {array} 进行操作的对象 * @param {string} 确定循环范围 */ /*U.UF.EL.styleConversion = function (UST, UTF) { UTF = UTF ? [/[A-Z]/g, "-", 0, "toLowerCase"] : [/-[a-z ]/g, "", 1, "toUpperCase"]; //转换的样式或者属性 return UST.replace(UTF[0], function (UMS) { //利用正则转换 return UTF[1] + UMS.charAt(UTF[2])[UTF[3]](); }); }*/ /** * 获取鼠标位置 * * @param {element} 相对对象 * @param {element} 进暂无使用行操作的对象 * @return {array} 过渡属性的值 */ /*U.UF.C.GetMousep = function (UDOD, UDTD) { var _UE = U.UF.EV.getEventSource(), //获取MouseEvent _UET = (_UE.touches && _UE.touches[0]) ? _UE.touches[0] : _UE, //如果是手机点击则获取touches[0]对象 _UDE = { "X": _UET.clientX || _UET["pageX"] || 0, "Y": _UET.clientY || _UET["pageY"] || 0 }, //储存坐标的对象 _UGE = { BCRL: 0, PXL: 0, BCRT: 0, PXT: 0 }; //用于储存数据sss (UDTD || UDOD) && (_UGE = UDTD || U.UF.EL.offsetParent(UDOD, true), _UGE = U.UF.EL.getElementInfo(_UGE)); //获取相对元素的位置 U.UF.C.AddObj(_UDE, { "TX": _UGE.BCRL - _UGE.PXL, "TY": _UGE.BCRT - _UGE.PXT }); //获取位置与上级相对位置 U.UF.C.AddObj(_UDE, { "X": _UDE["X"] - (_UDE["TX"] || 0), "Y": _UDE["Y"] - (_UDE["TY"] || 0), "MX": _UDE.X, "MY": _UDE.Y }); //设置值 return _UDE; }*/ ///** //* 统一处理函数,解决闭包添加事件的问题 //* 使用apply,把事件与属性添加到对象上,而不是添加到window顶级对象。使用apply而不是call,是因为apply第二个参数可以传递参数数组,代码更少。 //* 调用方法 U.UF.C.apply(this,'执行函数的事件') 例如 U.UF.C.apply(this,'this.style.display="none"'); //*解决作用域的问题函数名称为:U.FC.C.apply,主要用于在javascript中实现类的功能 //* @param {object} 将要绑定事件与属性的对象,如没有,可以传递null或者this,此处还需要优化,很多地方都会调用此函数,会导致速度降低。 //* @param {object} 函数与参数组成的数组。 //案例:U.FC.C.apply(this,function(){}); //this用dialog做案例. //案例: U.FC.C.apply(element,function(){}); //*/ //U.UF.C.apply = function (retElement, obj) { // //retElement 将要绑定事件与属性的对象,如没有,可以传递null或者this,此处还需要优化,很多地方都会调用此函数,会导致速度降低。 // //obj 时间和属性组成的参数数组 // return function () { // if (obj) { // var i, //循环初始化 // j, //循环初始化 // _URE, // _UAE, // _UTE = (retElement) || this, // _UME = Array.prototype.slice.apply(arguments); //arguments 转化成数组 // if (typeof obj == "string") { _URE = (new Function(obj)).apply(_UTE, _UME); } // else if (typeof obj == "function") { _URE = obj.apply(_UTE, _UME); } // else { // for (i = 0; i < obj.length; i++) { // if (obj[i] && obj[i][0]) { //函数存在 // _UAE = obj[i][1]; // (!_UAE) && (_UAE = []); // (!U.UF.Ut.isEvent(_UME[0]) || _UME.length > 1) && (_UAE = _UAE.concat(_UME)); //event == null || // //循环添加至 // for (j = 0; j < _UAE.length; j++) { // if (typeof _UAE[j] == "string") { // try { // if (_UAE[j].indexOf(this) > -1 || _UAE[j].indexOf("retElement") > -1 || _UAE[j].indexOf("event") > -1) { _UAE[j] = eval("0,(" + _UAE[j] + ")"); } //制定参数解析 // else if (U.UF.S.Num.test(_UAE[j])) { _UAE[j] = Number(_UAE[j]); } //数字转化 // } catch (e) { U.UF.C.console(e); } // } // } // try { // if (U.UF.C.isString(obj[i][0])) { // _URE = eval(obj[i][0]).apply(_UTE, _UAE); //eval效率不高 特殊情况才用 // } // else if (U.UF.C.isFunction(obj[i][0])) { _URE = obj[i][0].apply(_UTE, _UAE); } // } // catch (e) { U.UF.C.console(e); } //函数执行错误 // } // } // } // return _URE; // } // //直接掉function(){},不传递obj参数时,返回false。 // else { return false; } // } //} /** * 修改设置制定样式后获取所有设置的元素 * * @param {element} 元素 * @param {string} 获取的类型 * @param {string} 是添加还是移除属性 -----------De 移除属性 * @param {object} 设置的属性 * @return {array} 通过参数2获取的元素 */ /*U.UF.EL.SetElement = function (UDE, UTP, URE, UTF) { if (UDE) { (typeof (UDE) == "string") && (UDE = $$("div", { "innerHTML": UDE })); UDE = UDE || document; var i, //用于循环 _UFT, _UAE, _UDOD, _UMS = "", _UCE = []; UTP = (UTP == "*" || !UTP) ? "&*" : UTP; //需要获取的值 if (UTF) { for (i in UTF) { UTP += ("[" + i + (UTF[i] ? ("=" + UTF[i]) : "") + "]"); //属性选择 } } if ((_UAE = U.selectEl(UTP, UDE)) && UTF !== false && URE) { //设置 _UCE = _UAE[(_UFT = URE == "De") ? "remove" : "addAttrArray"](_UFT ? null : URE); } (URE == "De") && (_UCE = [_UCE.length > 0 ? _UCE : _UAE, UDE]); //如果为删除返回两个值 一个是选中的值 一个是传入的元素集 return _UCE; } return []; }*/ /* ** 作用:修改设置指定样式后获取所有设置的元素 ** @param {element} el 获取需要修改样式的元素 ** @param {element} key 获取属性的名 ** @param {boolean} b 如果b为true,则设置元素属性 ** @param {element} value 获取属性的value值 ** 实例:console.log(U.UF.EL.SetElement($("script")[0], 'key', true, 'value'))//设置属性 ** console.log(U.UF.EL.SetElement($("script")[0], 'key'))//获取属性 */ U.UF.EL.SetElement = function (el, key, b, value) { var i; // 用于循环 if (el) { // 判断元素是否存在 if (b === true) { // 如果b为true 则设置元素属性 el.setAttribute(key, value); return el.getAttribute(key) // 返回元素的属性值 } for (i = 0; i < el.attributes.length; i++) { // 循环元素的属性 if (el.attributes[i].nodeName === key) { // 判断元素的属性名是否跟key相同 return el.attributes[i].nodeValue // 返回获取的元素的属性值 } } } return 0 } /** * 根据ID获取指定的祖先元素 * * @param {element} 当前元素 * @param {string} 祖先元素的id * @return {element} 祖先元素 */ /*U.UF.EL.getAncestor = function (UDOD, UTID) { while (UDOD && !(UDOD == UTID || UDOD.id == UTID)) { //递归寻找父级 UDOD = UDOD.parentNode; } return UDOD; } number: /\(([\s\S]*?)\)/, //数字的使用 ename: /=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*/g, //[]选择符的使用 escape: /(&|![\w\u00c0-\uFFFF\-]|\@[\w\u00c0-\uFFFF\-]+=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*)/g, //需要转义的正则 nregular: /[>|+|~]/g, //伪类选择 con: /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, //通用符的使用 className: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, //className的定义 id: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, //id的定义 name: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, //name选择符处理 attr: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, tagName: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, child: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, //标签选择符处理 pos: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, //子元素选择器 pseudo: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ /** * 获取元素的位置大小 * * @param {element} el 元素 * @return {object} 返回元素的位置 函数内有详细的注释 */ U.UF.EL.getElementInfo = function (el) { // UDOD要获取位置的元素 if (el) { var i, //用于循环 _arr, //存放所有数据的集合 _arrbd, //用于获取元素的border属性 _arrpd = [], //用于获取元素的padding属性 _arrwh = [], //储存width、height变量 _arroffset = ["Top", "Right", "Bottom", "Left"], //用于连接字符串 获得offset属性 _elgetbc = el.getBoundingClientRect(), //返回一个矩形对象 _elxy = U.UF.M.pageXY(el), //获取UDOD的位置 _elp = U.UF.EL.offsetParent(el); //获取元素offsetParent for (i = 0; i < _arroffset.length; i++) { //筛选 padding 和 border _arrpd[i] = U.UF.EL.getStyle(el, "padding" + _arroffset[i]).toInt(); //总元素padding属性为获取元素指定的样式padding加上offset属性的整型 //_arrwh[i] = (_arrbd = U.UF.EL.getStyle(el, "border" + _arroffset[i] + "Width").toInt()).length ? 0 : _arrbd; if ((_arrbd = U.UF.EL.getStyle(el, "border" + _arroffset[i] + "Width").toInt()).length) {//判断是否拥有元素的指定样式border和width两个属性 _arrwh[i] = 0; //存储border和width变量的则为0 } else { _arrwh[i] = _arrbd//否则,则获取和元素的padding属性一样的值 } } _arr = { PD: _arrpd, //元素的padding BD: _arrwh, //元素的border PXT: (document.documentElement.scrollTop) + _elp.scrollTop, //滚动条top位置 PXL: (document.documentElement.scrollLeft) + _elp.scrollLeft, //滚动条left位置 SH: el.scrollHeight, //包含滚动掉的高度 SW: el.scrollWidth, //包含滚动条的长度 SL: el.scrollLeft, //滚动条向左的位置 ST: el.scrollTop, //滚动条向右的位置 CH: el.clientHeight, //页面不包含 border padding宽度 CW: el.clientWidth, //页面不包含 border padding长度 CT: el.clientTop, //页面margin + top的高度 CL: el.clientLeft, //页面margin + left的长度 OH: el.offsetHeight, ///页面包含 border padding宽度 OW: el.offsetWidth, //页面包含 border padding长度 OL: el.offsetLeft, //页面left的长度 OT: el.offsetTop, //页面top的高度 BCRH: _elgetbc.bottom - _elgetbc.top, //元素的显示高度 BCRW: _elgetbc.right - _elgetbc.left, //元素的显示长度 BCRT: _elgetbc.top, //元素的显示top BCRL: _elgetbc.left, //元素的显示left BCRB: _elgetbc.bottom, //元素的显示bottom BCRR: _elgetbc.right, //元素的显示right TX: _elxy[1], //元素的显示高度 TY: _elxy[0]//元素的显示高度 }; _arr.H = _arr["OH"] - _arr["PD"][1] - _arr["PD"][3] - _arr["BD"][1] - _arr["BD"][3]; //原宽度 不包含所有的border padding margin _arr.W = _arr["OW"] - _arr["PD"][0] - _arr["PD"][2] - _arr["BD"][0] - _arr["BD"][2] //原长度 不包含所有的border padding margin // U.UF.C.AddObj(_arr, { // H: _arr["OH"] - _arr["PD"][1] - _arr["PD"][3] - _arr["BD"][1] - _arr["BD"][3], //原宽度 不包含所有的border padding margin // W: _arr["OW"] - _arr["PD"][0] - _arr["PD"][2] - _arr["BD"][0] - _arr["BD"][2] //原长度 不包含所有的border padding margin // }); return _arr; } return {}; } ///** //* resize变化处理 包含了resizestart endresize 由于resize会出发多次 所有这里可分为 start 和 end //* //* @param {object} resize对象 //*/ //U.UF.EV.resize = function (obj) { // var _obj = new U.UF.EV.resize.init(obj); //初始化监视 // return U.UF.C.apply(_obj, _obj.exec); //设置执行的方式 //} ///** //* resize方法函数 //* //* @param {object} resize对象 //*/ //U.UF.EV.resize.init = function (obj) { // U.UF.C.AddObj(this, this.u = obj); //添加事件监视 //} ///** //* resize方法 //* //*/ //U.UF.EV.resize.init.prototype = { // exec: function () { //执行resize处理 // this.start(); //onresize回调处理 // (this.ti) && (clearTimeout(this.ti)); //取消end监视 // this.ti = setTimeout(function () { this.end(); }, 0); //end处理 // (U.UF.C.isFunction(this.u)) && (this.u()); //end事件等待 // }, // start: function () { // this.iss = true; //设置已经start // (!this.iss && this.s) && (this.s()); //函数回调 // }, // end: function () { // this.iss = false; //end结束 // (this.e) && (this.e()); //resizeend处理 // } //} var i, j, k, _UNE, _UTP, _UVE, _UAE, _UST, _UTE = this, i = item || 0, _UL = item + 1 || this.length, _UGE = { "class": "className", "html": "innerHTML", "text": "innerText", "float": "cssFloat" }, _UME = ["width,height,top,bottom,left,right", "px"]; for (; (i < _UL && i < this.length); i++) { for (j in UDE) { if (UDE.hasOwnProperty(j)) { if (j == "style") { //style赋值 _UVE = ""; _UAE = UDE[j]; for (k in _UAE) { //添加cssText if (_UAE.hasOwnProperty(k)) { _UTP = U.UF.EL.styleConversion(k, true); _UNE = _UAE[k]; if ((k in this[i][j]) && (_UTP == "css-text" || _UAE[k]) && this[i].cloneNode) { if (_UTP == "css-text") { _UVE = _UAE[k] + ";" + _UVE; } //cssText赋值 else { (_UME[0].split(",").indexOf(_UTP, null, true) > -1 && U.UF.C.isStringInt(_UNE)) && (_UNE += _UME[1]); _UVE += _UTP + ":" + _UNE + ";"; } //单个属性赋值 continue; } this[i][j][U.UF.EL.styleConversion(k)] = _UAE[k] || ""; } } (_UVE != null) && (this[i][j]["cssText"] += ";" + _UVE); //添加css值 } else { //其它属性赋值 if (j.indexOf("on") == 0 && "array,string".indexOf(U.UF.C.getType((_UVE = UDE[j]))) > -1) { ((_UVE = UDE[j]) && typeof _UVE[0] == "function") && (_UVE = [_UVE]); UDE[j] = U.UF.C.apply(this[i], _UVE); } //事件特殊处理 if (typeof (_UAE = this[i])[j] == "object" && typeof UDE[j] == "object") { U.UF.C.AddObj(_UAE[j], UDE[j]); } //object赋值 else { if (_UAE[j] !== UDE[j]) { _UST = _UAE[j]; k = _UGE[j] || j; if (U.UF.C.isString((_UVE = UDE[j])) && U.UF.EL.isCustomAttributes(_UAE, k)) { try { _UAE.setAttribute(k, _UVE); } catch (e) { } } _UAE[k] = UDE[j]; } } //非原属性下的 } } } } /** * 获取大小位置 * * @param {element} 元素 * @return {object} 获取元素的大小 */ U.UF.EL.getElementInfo = function (el) { var i, _UST, //i用于循环 _UST用于存放width和height _UDTD = U.selectEl(el), //获取当前元素 _UPE = [], //用于存放padding的大小 _UBE = [], //用于存放border的大小 _UAE = ["Top", "Right", "Bottom", "Left"]; //用于存放top、left、right、bottom的属性 //获取padding border for (i = 0; i < _UAE.length; i++) {//循环四周有没有padding和border的top、left、right、bottom属性 _UPE[i] = _UDTD.css("padding" + _UAE[i]).toInt(); //把当前元素获取到的padding属性的大小存放在数组中 _UBE[i] = _UDTD.css("border" + _UAE[i] + "Width").toInt(); //把当前元素的border属性的大小存放在数组中 (_UBE[i].length) && (_UBE[i] = 0); //border的长度并且border的长度不为0 } //获取长宽 _UAE = ["width", "height"]; //用于存放width、height的属性 for (i = 0; i < _UAE.length; i++) {//循环width和height _UST = _UAE[i]; _UAE[i] = _UDTD[_UST](); } //返回大小处理 return { "PD": _UPE, //padding "BD": _UBE, //border "OW": _UAE[0] + _UPE[1] + _UPE[3] + _UBE[1] + _UBE[3], //包含padding border 的长 "OH": _UAE[1] + _UPE[0] + _UPE[2] + _UBE[0] + _UBE[2], //包含padding border 宽 "CW": _UAE[0], //不包含padding border 宽 "CH": _UAE[1]//不包含padding border 宽 }; } //, // animate: function (UDE, USP, cb, UIF, UGE) { //css3动画效果和js原始动画 动画排队 // if (UDE) { // var i, j, k, _UTE, _UKW, _USE, _UE, _UDID, _UTID, _UME, // _UL = UIF + 1 || this.length, // _UDSD = $$("div").style, // _UAE = [{ "style": {} }, "", {}], // _UCE = ["width", "height", "top", "bottom", "left", "right"], // _UBE = U.UF.CI.getBrowser(), _UTF = _UBE.browser == "msie" && parseInt(_UBE["ver"]), _USD = { "fast": 300, "normal": 1000, "slow": 3000}[USP], _UAF = UDE["IES"]; delete UDE["IES"]; _USD = _USD || USP || 1000; // for (i in UDE) { if (UDE.hasOwnProperty(i)) { if (_UDSD[(_UKW = U.UF.EL.styleConversion(i))] === undefined) { _UAE[0][i] = UDE[i]; } else { _UAE[0]["style"][_UKW] = UDE[i]; if (_UKW == "cssText") { _UAE[1] += UDE[i] + ";"; } else { _UAE[1] += (_UKW = U.UF.EL.styleConversion(i, true)) + ":" + UDE[i] + ";"; for (j = 0; j < _UCE.length; j++) { if (_UCE[j] == i || _UKW.indexOf(_UCE[j]) > -1) { _UAE[2][_UKW] = ""; break; } } } } } } //设置css3动画和js动画 // for (i = (UIF || 0); i < _UL; i++) { _USE = ""; for (j in _UAE[2]) { if (UDE.hasOwnProperty(j)) { j += j.indexOf("padding") > -1 ? "-width" : ""; _UE = this.css(j, null, i); _UE = isNaN(_UE.toInt()) ? ((this[j] ? this[j](i) : 0) + "px") : _UE; _USE += j + ":" + _UE + ";"; } }; (_USE) && (this.addAttrArray({ "style": { "cssText": _USE} }, i)); } //设置初始值 // if (_UTF && _UTF < 10 && _UAF == null) { this.addAttrArray(_UAE[0], UIF); (U.UF.C.isFunction(cb)) && (cb()); } //Ie8不动画 (cb) && (setTimeout(cb, 0)); // else { //IE9以上动画渲染 // if (((!_UTF || _UTF > 9) && (_UAE[1] || _UAE[0].className))) { //css3动画加速 // _USE = U.UF.EL.GCssAe(); // _UDID = "UEM" + Guid.guidNoDash(); // _UE = _USE[0] + ":all " + (_USD / 1000) + "s linear;"; // if (UGE) { // for (i in UGE) { _UE += _USE[0] + "-" + i + ":" + UGE[i] + ";"; } // } // _UE = "." + _UDID + " {" + _UE + "}"; //设置动画属性 // this.bind(_USE[1], (_UTE = U.UF.C.apply(this, function () { // this.unbind(_USE[1], _UTE); // U.UF.EL.AsynCssEM.apply(this, [_UDID, _UDSD, cb, UIF]); // }))); //添加动画 // _UDSD = U.UF.DL.LoadStyle(_UE); // U.select.IsAnimate(this, UIF, _UDID); // this.addClass(_UDID, UIF); // (_UAE[0].className) && (this.addClass(_UAE[0].className, UIF), delete _UAE[0].className); // this.addAttrArray(_UAE[0], UIF); delete _UAE[0].className; delete _UAE[0].style; //移除设置回调 // } // for (i in _UAE[0]) { // if (_UAE[0].hasOwnProperty(i)) { //非css动画或者IE8动画 // _UME = U.UF.C.Animation({ "cb": function () { this.Auxiliary.animate([UIF, _UL, _UTID, _USE ? null : cb], _UAE[0]); }, "ti": _USD }); //动画加速 // U.select.IsAnimate(this, UIF, _UME); // break; // } // } // } // } // return this; // }, // stop: function (item) { //停止动画回播 // var _USE, i = item || 0, // _UL = item == null ? this.length : item + 1; // for (; i < _UL; i++) { // if ((_USE = this[i].__Animate__)) { // if (U.UF.C.isString(_USE[2])) { // this[i].className = _USE[2]; // this.addClass(_USE[1], i); // this.css("cssText", _USE[0], i); // } // else { // _USE[2].stop(); // } // } // } // }, // opacity: function (UVE, item) { //设置透明度 全兼容 // if (this.length) { // var i, _USE = {}, _UDE = { opacity: 1, "-webkit-opacity": 1, "-moz-opacity": 1, "-khtml-opacity": "", filter: "" }; // for (i in _UDE) { if (i in this[0].style) { _USE[i] = (_UDE[i] = i == "filter" ? "alpha(opacity=" + (UVE * 100) + ")" : UVE); } } // } // }, // fadeIn: function (USP, cb, item) {//动画淡出,, // var i, _UKE, _USE = {}, _UDOD = $$("div").style, _UDE = ["opacity", "-webkit-opacity", "-moz-opacity", "-khtml-opacity", "filter"]; cb = U.UF.C.apply(this, function () { // this.addAttrArray({ "style": (_UKE = { "display": "none" }) }, item); // cb(); // }); //设置回调 // for (i = 0; i < _UDE.length; i++) { if (_UDE[i] in _UDOD) { _UKE[_UDE[i]] = ""; _USE[_UDE[i]] = _UDE[i] == "filter" ? "alpha(opacity=0)" : "0"; break; } }; return this.animate(_USE, USP || "fast", cb, item); //查看 // }, // fadeOut: function (USP, cb, item) {//动画淡入 // var i, _USE = {}, _UDOD = $$("div").style, _UDE = ["opacity", "-webkit-opacity", "-moz-opacity", "-khtml-opacity", "filter"]; for (i = 0; i < _UDE.length; i++) { if (_UDE[i] in _UDOD) { _USE[_UDE[i]] = _UDE[i] == "filter" ? "alpha(opacity=100)" : "1"; _UDE = _UDE[i]; break; } }; // _USE[_UDE] = _UDE == "filter" ? "alpha(opacity=100)" : "1"; this.addAttrArray({ "style": { "display": "block"} }); return this.animate(_USE, USP || "fast", cb, item); //查看 _USE // }, // slideUp: function (USP, cb, item) { //滑动消失 // this.slideToggle(USP, cb, item); // }, // slideDown: function (USP, cb, item) { //滑动出现 // this.slideToggle(USP, cb, item, false); // } // on: function (UE, US, cb, item) { //事件绑定 // var _UDE = this; (US) && (_UDE = this.find(US, item)); _UDE.bind(UE, cb, item); // }, // off: function (UE, US, cb, item) { //取消事件绑定 // var _UDE = this; (US) && (_UDE = this.find(US, item)); _UDE.unbind(UE, cb, item); // } // resize: function (cb, item) { //resize事件 // this.bind("resize", U.UF.EV.resize(cb), item); // }, // resizestart: function (cb, item) { //resoze开始 // this.resize({ s: cb }, item); // }, // resizeend: function (cb, item) { //设置sizeend // this.resize({ e: cb }, item); // }, //#region 扩展选择器 //U.select.fn.extend({ //}); // scrollTo: function (UT, UTI) {//移动变化 // var _UDOD = this[0]; (_UDOD) && (U.UF.EV.scrollToPosition(UT, _UDOD, UTI)); // } ////#region 事件监听区域 //U.select.fn.extend({ // cache: [], //保存对象使用选择器保留值 // cacheE: function (UDOD) {//保存对象的值 // var i, _UDE = U.select.fn.cache; // for (i = 0; i < _UDE.length; i++) { if (_UDE[i].UDOD === UDOD) { return _UDE[i]; } } //获取制定的元素绑定 // this.events = {}; this.UDOD = UDOD; this.id = Guid.guidNoDash(); _UDE.push(this); return this; //添加事件监听对象 // } //}); //U.select.fn.cacheE.prototype = { // removeEvent: function (UDE, UAE) { //删除event // var i, j, _UME, _UDOD = this.UDOD, _UCE = this.events; (typeof UDE == "string") && (_UME = UDE, (UDE = {})[_UME] = UAE); UDE = UDE || _UCE; // for (i in UDE) { if (UDE.hasOwnProperty(i) && (_UME = _UCE[i])) { for (j = 0; j < _UME.length; j++) { if (_UME[j] == UDE[i] || _UCE == UDE || !UDE[i]) { U.UF.EV.delElementEvent(i, _UDOD, _UME.splice(j, 1)[0]); j--; } } } } //清除事件 // }, // addevent: function (UDE, UAE) { //添加event监听 // var i, _UCE = this.events; // (!_UCE[UDE]) && (_UCE[UDE] = []); _UCE[UDE].push(UAE); // } //} ////#endregion ////window.$$.NS = function (UNE, UDE, UPE, UCE, UUE) { //创建带有命名空间的元素 //// var _UDOD = U.selectEl(document.createElementNS(UUE || "http://www.w3.org/2000/svg", UNE)); //// _UDOD.addAttrArray(UDE); (UPE) && (_UDOD.appendTo(UPE, 0, UCE)); return _UDOD[0]; //添加属性 ////} ////#region 辅助函数 ////U.select.fn.extend({ //// selecte: { //// "only-child": function (UDE) { //获取作为单一孩子节点元素 //// return Array.prototype.slice.call(U.select(UDE).only()); //// }, //// "nth-child": function (UDE, UTP) { //获取第几个元素 //// var i, j, _UCE, _UN = UTP.match(this.match.number)[1], _UTF = _UN.indexOf("n") > -1, _UAE = []; _UN = _UN.toInt(); //// if (!_UTF || _UN) { //// for (i = 0; i < UDE.length; i++) { //// _UCE = U.select(UDE[i]).parentElement().Child(); //// if (_UTF) { for (j = _UN; j <= _UCE.length; j += _UN) { if (UDE[i] == _UCE[j - 1]) { _UAE.push(UDE[i]); (_UN == 1) && (j++); break; } } } //(xn)查找 //// else { (_UCE[_UN - 1] == UDE[i]) && (_UAE.push(UDE[i])); } //直接获取第几个 //// } //// } //// return _UAE; //// }, //// "first-child": function (UDE) { //获取开头元素 //// var i, _UAE = []; //// for (i = 0; i < UDE.length; i++) { (!U.select(UDE[i]).prev().lenght) && (_UAE.push(UDE[i])); } //// return _UAE; //// }, //// "last-child": function (UDE) { //获取末尾元素 //// var i, _UAE = []; //// for (i = 0; i < UDE.length; i++) { (!U.select(UDE[i]).next().length) && (_UAE.push(UDE[i])); } //// return _UAE; //// }, //// first: function (UDE) { //获取第一个匹配的元素 //// return UDE.length ? UDE[0] : UDE; //// }, //// last: function (UDE) { //获取最后一个匹配元素 //// return UDE.length ? UDE[UDE.length - 1] : UDE; //// }, //// nth: function (UDE, UTP) { //获取匹配的第几个元素 //// var i, _UAE = [], _UN = UTP.match(this.match.number)[1], _UTF = _UN.indexOf("n") > -1; _UN = _UN.toInt(); //// if (_UTF || _UN) { //// if (_UTF) { for (i = _UN; i <= UDE.length; i += _UN) { _UAE.push(UDE[i - 1]); } } //// else { (UDE[_UN]) && (_UAE.push(UDE[_UN])); } //// } //// return _UAE; //// }, //// getevenodd: function (UDE, UTP) { //获取奇数和偶数集 //// var i, j, _UDPD, _UCE, _UTF, _UPE = [], _UAE = []; //// for (i = 0; i < UDE.length; i++) { //// _UCE = null; _UDPD = UDE[i].parentNode; //// for (j = 0; j < _UPE.length; j++) { if (_UPE[j][0] == _UDPD) { _UCE = _UPE[j]; _UCE[1].push(UDE[i]); } } //// (!_UCE) && (_UPE.push((_UCE = [_UDPD, [UDE[i]]]))); _UTF = (_UCE[1].length - 1) % 2; ((UTP == "even" && !_UTF) || (UTP == "odd" && _UTF)) && (_UAE.push(UDE[i])); //// } //// return _UAE; //// }, //// even: function (UDE) { //获取偶数集 //// return this.selecte.getevenodd(UDE, "even"); //// }, //// odd: function (UDE) { //获取奇数集 //// return this.selecte.getevenodd(UDE, "odd"); //// }, //// eq: function (UDE, UTP) { //获取制定的位置列 //// return UDE[UTP.match(this.match.number)[1].toInt()]; //// }, //// gt: function (UDE, UTP) { //索引大于的元素 //// U.select(UDE).gt(UTP.match(this.match.number)[1].toInt()); //// }, //// lt: function (UDE, UTP) {//索引小于的元素 //// U.select(UDE).lt(UTP.match(this.match.number)[1].toInt()); //// }, //// "first-of-type": function () { }, //// "last-of-type": function () { }, //// "only-of-type": function () { }, //// "nth-last-child": function () { }, //// "nth-of-type": function () { }, //// "nth-last-of-type": function () { } //// } ////}); ////简单的复杂的方法统一 ////$.SetMethod.prototype = U.select.prototype; ////#endregion ////#endregion //, // length: 0, //初始化长度 // splice: Array.prototype.splice, // constructor: Array //U.select.fn.init.prototype = U.select.fn; //添加扩展 // el = el || document; // //如果是字符串说明用户要通过选择器找到字符串 // if (U.UF.C.isString(name)) { // var i, j, k, _UTP, _UIE, _UTF, _UVE, _UGE, _UXE, _UJE, _UOT, _UST = "", // _UDE = el, // _UME = this.match, //获取选取的正则 // _UCE = name.replace(_UME.escape, U.select.GetSelector), // _UCN = _UME.con, // _UKE = [], // _UBE = U.UF.CI.getBrowser(); //浏览器版本 // _UBE = (_UBE.browser == "msie" && _UBE.ver.toInt()); //ie的版本 // //拆分选择器 // do { // _UCN.exec(""); // _UCE = _UCN.exec(_UCE); // _UKE.push(_UCE[1] + (_UCE[2] || "")); // _UCE = _UCE[3]; // } // while (_UCE); //生成获取集合 // _UXE: for (i = 0; (i < _UKE.length && _UDE); i++) { // if (_UBE < 6 && _UME.nregular.test((_UTF = _UKE[i + 1]))) {//处理选择伪类等 // if (_UTF == "+" || _UTF == "~") { //向下选择 // if (_UOT = (_UME.pos.test(_UKE[i]) || _UME.child.test(_UKE[i]))) { // _UVE = this.getelement(_UKE[i], _UDE, _UST); // (U.UF.Ut.isHtmlElement(_UVE)) && (_UVE = [_UVE]); // } // else { // _UJE = this.getType(_UKE[i]); // } // _UIE = this.getType(_UKE[i + 2]); // _UDE = this.gete(_UDE, _UIE[4], _UST, _UIE); // for (j = 0; j < _UDE.length; j++) { //判断获取 // _UTP = false; // this.celement.apply[_UDE[j]], [_UTF == "+" ? "previousSibling" : "prevaAll", NaN, _UGE = []]; //获取 // for (k = 0; k < _UGE.length; k++) { // if (_UOT) { // if (_UVE.indexOf(_UGE[k]) > -1) { _UTP = true; break; } // } else if (_UGE[0][_UJE[3]].toLowerCase() == _UKE[i]) { _UTP = true; break; } // } // (!_UTP) && (_UDE.splice(j, 1), j--); // } // } // else if (_UTF == ">") { //子元素 // _UVE = this.getelement(_UKE[i], _UDE, _UST); // if (typeof _UVE == "string") { // _UVE == this.gete(_UDE, "", _UST); // } // if ((_UDE = _UVE)) { // (U.UF.Ut.isHtmlElement(_UDE)) && (_UDE = [_UDE]); // _UGE = []; // _UIE = this.getType(_UKE[i + 2]); // _UVE = this.gete(_UDE, _UIE[4], "", _UIE); // for (j = 0; j < _UVE.length; j++) { // for (k = 0; k < _UDE.length; k++) { // if (_UDE[k] == _UVE[j].parentNode) { // _UGE.push(_UVE[j]); break; // } // } // }; _UDE = _UGE; // } // } // _UST = ""; i += 2; // (_UIE[2]) && (_UDE = this.getelement("", _UDE, _UIE[2])); // } // else { // if (_UKE[i].length > 1 && _UKE[i].indexOf("*") > -1) { // _UKE[i] = _UKE[i].substr(1); // if (!(_UDE = document[_UKE[i]])) { // if (U.UF.CI.getBrowser().browser == "msie") { // _UDE = document.getElementById(_UKE[i]); // } else { _UDE = document.embeds[_UKE[i]]; } // } _UST = ""; // } // else { // _UVE = this.getelement(_UKE[i], _UDE, _UST); // if (typeof _UVE == "string") { _UST += _UVE; } // else if (_UVE) { _UDE = _UVE; _UST = ""; } // else if (_UVE === null) { _UDE = null; break _UXE; } // else { _UST += _UKE[i]; } // } // } // } // if (_UST && _UDE) { // _UIE = this.getType(_UST); // _UTF = (_UIE && !_UIE[2].trim()); // _UDE = this.gete(_UDE, _UIE ? _UIE[4] : "", _UTF ? "" : _UST, _UTF ? _UIE : null); // } //添加元素 // } // else { // var _UDE = name || []; // } // if (_UDE) { // this.osadd(_UDE); // } // //多个选择 // osel: function (UTP, UTV, UDE, UTE) { // var i, j, _UKE, _UAE = [], _UCE = [], _UTP = "parentNode", _UTF = true; // if (UTP) { //选择 // _UCE = []; // for (i = 0; i < UDE.length; i++) { // if (UDE[i][UTP] == UTV || UDE[i].getAttribute(UTP) == UTV || UTV === undefined) { // _UCE.push(UDE[i]); // } // } // } // else { // for (i = 0; i < UDE.length; i++) { // for (j = 0; j < _UAE.length; j++) { // if (UDE[i][_UTP] == _UAE[j][0]) { // _UAE[j][1].push(UDE[i]); break; // } // _UAE.push[UDE[i][_UTP], [UDE[i]]]; // } // } //选择的元素 // for (i = 0; i < _UAE.length; i++) { //选择 // _UKE = (UTE && _UAE[0][UTE]) ? _UAE[0][UTE](UTP) : SelectorElement(UTP, _UAE[0]); //获取 // for (j = 0; j < _UKE.length; j++) { // if (!_UAE[1].length) { break; } // ((i = _UAE[1].indexOf(_UKE[j])) > -1) && (_UCE.push(_UKE[j]), _UAE[1].splice(i, 1)); // } // } // } // return _UCE; // }, // //添加选择的元素 // osadd: function (UDE) { // if (U.UF.Ut.isHtmlElement(UDE) || UDE.length == null) { // UDE = [UDE]; // } // for (var i = 0; i < UDE.length; i++) { // if (UDE[i]) { // this[this.length++] = UDE[i]; // (UDE[i].id) && (this[UDE[i].id] = UDE[i]); // } // } // return this; //添加元素 // }, // //移除元素 // del: function (item, UTF) { // var i, _UL = this.length; (item != null) && (this[item] = null); // if (!UTF) { // for (i = 0; i < _UL; i++) { // if (this[i] == null) { // if (this[i + 1]) { // this[i] = this[i + 1]; // this[i + 1] = null; // } // else { delete this[i]; } this.length--; // } // } // } // }, // gete: function (UDE, UTP, UTS, USM) {//获取元素 // var i, _UCE, _UKE = []; (U.UF.Ut.isHtmlElement(UDE)) && (UDE = [UDE]); // for (i = 0; i < UDE.length; i++) { // _UCE = UDE[i]; _UCE = (!UTS && (USM[1].length >= USM[0].length - 1) && _UCE[UTP]) ? _UCE[UTP](USM[1]) : SelectorElement(UTS + (USM ? USM[0] : ""), _UCE); // if (_UCE) { (U.UF.Ut.isHtmlElement(_UCE)) && (_UCE = [_UCE]); _UKE = _UKE.concat(U.UF.C.toArray(_UCE)); } // } // return _UKE; // }, // getelement: function (UCE, UDE, USE) {//通过选择字符串获取元素 // var i, _UME = this.match, _UAE = UCE ? this.getType(UCE) : "", _UST = _UAE && _UAE[2], _UBE = U.UF.CI.getBrowser(), _UTF = _UME.pos.test(_UST) || _UME.child.test(_UST); _UBE = (_UBE.browser == "msie", _UBE.ver.toInt()); if (!_UAE && UCE) { return _UAE; } // if (_UAE && USE !== true && (_UAE[0] == UCE || _UAE[2].indexOf(":") == -1) || (!_UTF || (!_UBE || _UBE > 8 || (UCE.indexOf("first-child") > -1 && _UBE > 6)))) { return UCE + " "; } //兼容添加选择值 // else { // if (_UTF) { //过滤选择 //伪类选择 // _UST = _UST.split(":"); _UAE[0] += _UST[0]; UDE = this.gete(UDE, _UAE[4], USE, _UAE); // for (i = 1; i < _UST.length; i++) { if (_UST[i] && !U.UF.Ut.isHtmlElement(UDE)) { UDE = this.selecte[_UST[i].split("(")[0]].call(this, UDE, _UST[i]); } } // } // else { UDE = this.gete(UDE, _UAE[4], "", _UAE); }; return UDE // } // }, // getType: function (UCE) {//获取格式 // var i, _UJE, _UME = this.match, _UAE = { "name": "getElementsByName", "id": "getElementById", "tagName": "getElementsByTagName", "className": "getElementsByClassName" }; // for (i in _UAE) { if ((_UJE = _UME[i].exec(UCE))) { return [_UJE[0], _UJE[1], UCE.replace(_UJE[0], ""), i, _UAE[i]]; } } //获取值 // }, // getValue: function (USE) { //通过选择字符串生成响应的选择 // var i, _UDE = {}, _UNC = this.common.nregular, _UC = this.common.regular, _UNCA = (USE.match(_UNC) || []), _UCA = USE.match(_UC) || ["*"]; // for (i = 0; i < _UCA.length; i++) { switch (_UNCA[j]) { case "!": _UDE["name"] = _UCA[j]; break; case "#": _UDE["id"] = _UCA[j]; break; case ".": _UDE["className"] = _UCA[j]; break; case "": case "&": _UDE["tagName"] = _UCA[j]; break; } } //获取 // return _UDE; // }, ///** //* 动画处理使用 //* //* @param {string} 选择特殊字符串 包含# & [] //* @param {document} 搜索的层次 //* @param {document} 搜索的层次 //*/ //U.select.IsAnimate = function (UDE, item, UCL) { // var i = item || 0, _UL = item == null ? UDE.length : item + 1, _UTF = arguments.length > 0; // for (; i < _UL; i++) { // if (_UTF) { // UDE[i].__Animate__ = [UDE[i].style.cssText, UDE[i].className, UCL]; // } // else { // UDE[i].__Animate__ = null; delete UDE[i].__Animate__; // } // } //}; ////通过元素的来获取 ///** //* 使用正则表带是 //* //* @param {string} 选择 //* @param {document} 搜索的层次 //*/ //$.getElementByString = function (name, el) { // var _e, //这个是获取成功的函数 // _r = name.substring(0, 1), //获取特殊字符 . # 或者 "" // _n = name.substring(1, name.length), //获取标签名 // _doc = el || document; //去除特殊字符后 // //这里是判断获取 // try { //这里利用基础的选择器选取数据 // switch (_r) { // case "#": //根据id获取 因为id获取只能通过全局搜索 但是由于项目中有存在克隆的情况 会出现id不唯一的情况 // if (_doc == document && U.UF.S.EN.test(_n)) { // _e = document.getElementById(_n); // } // break; // case ".": //根据className获取 // if (U.UF.S.EN.test(_n)) { // _e = _doc.getElementsByClassName(_n); // } // break; // case "*": //根据className获取 // if (U.UF.S.EN.test(_n)) { // _e = _doc.getElementsByTagName("*"); // } // else { // _e = document[_n]; // if (U.UF.CI.getBrowser().browser == "msie") { // _e = document.getElementById(_n); // } // else { // _e = document.embeds[_n]; // } // } // break; // default: //标签的获取 //获取指定的元素 // if (U.UF.S.EN.test(name)) { // _e = _doc.getElementsByTagName(name); //除去特殊字符的处理 // } // break; // } // } // catch (e) { } // //判断是否获取元素成功,如果上面简单的选择去不成功,那么就通过其他的选择器方案去获取 // if (_e == null) { // _e = U.UF.CP.SelectorElement(name, _doc); //其他选择的方式获取 // } // return new $.SetMethod(_e); //把选择的元素添加方法 //} ///** //* 元素方法 //* //* @param {object} 设置的域 //*/ //$.SetMethod = function (el) { // el = el || []; // //把所有获取出来的元素转化成数组,以便下面循环添加 // if (U.UF.Ut.isHtmlElement(el) || el.length == null) { // el = [el]; // } // //设置获取元素的长度 // this.length = el.length; // //循环所有的元素,把元素设置到this里面,这样用户获取到的元素集就能通过this[0]或者this[id]去获取了 // for (var i = 0; i < el.length; i++) { // //如果元素存在的处理 // this[i] = el[i]; // //如果元素有id,那么给返回值添加一个id的处理,以便返回值中有以id作为key的返回值 // if (el[i].id) { // this[el[i].id] = el[i]; // } // } //} ///** //* 初始化编辑区域 //* //* @param {string} 选择特殊字符串 包含# & [] //* @param {document} 搜索的层次 //*/ //U.select.GetSelector = function (UST) { //处理选择器 // if (UST == "#") { //getElementById 的选择符 // return " #"; // } // else if (UST == "&") { //className联合的选择符 // return " "; // } // else if (UST.charAt(0) == "!") { //自定义参数的选择符 // return "[name='" + UST.substr(1) + "']"; // } // else { //自定义参数使用 // return "[" + UST.substr(1).replace(U.select.prototype.match.ename, "='$1'") + "]"; // } //}; // //正则匹配选择器 // match: { // ename: /=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*/g, //[]选择符的使用 // escape: /(&|![\w\u00c0-\uFFFF\-]|\@[\w\u00c0-\uFFFF\-]+=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*)/g, //需要转义的正则 // nregular: /[>|+|~]/g, //伪类选择 // con: /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, //通用符的使用 // className: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, //className的定义 // id: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, //id的定义 // name: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, //name选择符处理 // attr: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, // tagName: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, child: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, //标签选择符处理 // pos: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/ //子元素选择器 // }, ///** //* 初始化对话框实例 //* @returns {function} 回调函数初始化 //* @arguments 对象的 length 属性包含了传递给U.UF.UI.Dialog的参数的数目。 //*/ //U.UF.UI.Confirm.init = function (UDE) { // var i, _UCE = ["title", "style", "confirmNoClose", "confirmYesClose", "content", "top"]; // if (UDE.length < 4) { // var _UDOD = U.selectEl("#U_COF"); //创建一个ID为U_COF的对象 // UDE = ["消息提示", { "width": "300px" }, UDE[2], UDE[1], // $$("div", { // "className": "U_UI_OC", // "style": { // "textAlign": "center", // "margin": "25px 0", // "max-width": "400px", // "word-wrap": "break-word", // "max-height": "400px", // "overflow": "auto" // }, // innerHTML: UDE[0] ? UDE[0] : "" // })]; // } // for (i = 0; i < UDE.length; i++) { // this[_UCE[i]] = UDE[i]; // } // this.Create(); //} //U.UF.UI.Confirm.init.prototype = { // /** // * 创建对话框的ui // */ // Create: function () { // var i, _UDE, _UDOD, _UDTD, _UDID, _UDSD, _UCB, _USE = { // width: "auto", // height: "auto" // }, // _UEK = (this.style = this.style || {}); // _USE.forEach(function (UA, UB) { // _UEK[UB] = _UEK[UB] || UA; // }); // _UEK.zIndex = 9999; // var _frag = $$("frag"); // _UDOD = $$("div", // { // "className": "U_UI_OB" // }); // _UDTD = $$("div", // { // "className": "U_UI_OBA" // }, _UDOD); // this.No = $$("div", { // "onclick": function () { // this.confirmYesNo(this.confirmNoClose); // }, // [(Array.isArray(this.confirmNoClose) ? this.confirmNoClose : [this.confirmNoClose]), [(_UCB = U.UF.C.apply(_UDE, [[_UDE.shut]]))]], // "innerHTML": "取消", // "style": { "display": this.Q == true ? "none" : "block" }, // "className": "U_UI_OBY" // }, _UDTD); // this.Yes = _UDSD = $$("div", { // "onclick": function () { // this.confirmYesNo(this.confirmYesClose); // }, //[(Array.isArray(this.confirmYesClose) ? this.confirmYesClose : [this.confirmYesClose]), [_UCB]], // "innerHTML": "确定", // "className": "U_UI_OBY" // }, _UDTD); //确定按钮 // _frag.appendChild(this.content); // _frag.appendChild(_UDOD); // this.form = _UDE = new U.UF.UI.form({ // id: "U_COF", // top: this.top ? true : false, // min: false, // max: false, // style: this.style, // title: "
" + (this.title || "对话框") + "
", // content: _frag, // hst: { // style: { // padding: "0" // } // }, // draw: false // }); //创建对话框 // // U.selectEl(_UDE.middle).append(_UDOD); // _UDID = U.selectEl("input", _UDE.middle); // for (i = _UDID.length - 1; i >= 0; i--) { // if ("text,password".indexOf(_UDID[i].type) > -1) { // _UDID[i].focus(); // _UDID[i].onkeypress = U.UF.C.apply(_UDID[i], function () { // U.UF.C.returnkeylogin([{ // "obj": _UDSD, // "event": 'onclick' // }]); // }); // } // } // return _UDE; // }, // /** // * 给对话框设置事件 // * @param {object} 窗体事件使用 // ----------[yes] {function} 确定的函数事件 // ----------[no] {function} 取消的函数事件 // */ // AddEvent: function (UDE) { // for (var i in UDE) { // if (UDE.hasOwnProperty(i)) { // this[i].onclick = U.UF.C.apply(this.form, function () { // this.form.shut(); // UDE[i](); // }); // // } // } // }, // /** // * 给对话框设置事件 // * @param {object} 窗体事件使用 // */ // confirmYesNo: function (fun) { // var _UCB = U.UF.C.apply(this.form, this.form.shut), //关闭窗体的函数 // _UTF = Array.isArray(fun) ? U.UF.C.apply(this, fun)() : (fun) && (fun.call(this)); // if (_UTF !== false) { //不允许关闭 // _UCB(); // } // // [(Array.isArray(this.confirmNoClose) ? this.confirmNoClose : [this.confirmNoClose]), [(_UCB = U.UF.C.apply(_UDE, [[_UDE.shut]]))]] // } //} /*U.UF.UI.Dialog = function (UDC, UDT, UDID, UDW, UDH) { (!UDW || !UDH) && (UDW = "400px", UDH = "550px"); return U.UF.UI.form({ id: UDID ? UDID : null, style: { "width": parseInt(UDW) + "px", "height": parseInt(UDH) + "px" }, content: UDC ? UDC : null, title: UDT ? UDT : "通知", min: false, max: false, draw: false }); }*/ //U.UF.UI.Confirm = function (UCT, UCBF, UCNF) { // var _UDOD = U.selectEl("#U_COF"); //创建一个ID为U_COF的对象 // if (_UDOD[0]) { //判断是否有U_COF的子节点,没有则创建 // _UDOD.childs(0, 1).childs(0, 0).html(UCT); //设置内容 // _UDOD.Center(); //内容居中 // } else { // U.selectEl(U.UF.UI.Dialog("消息提示", {}, UCNF ? U.UF.C.apply(this, [UCNF]) : null, UCBF ? U.UF.C.apply(this, [UCBF]) : null, // $$("div", { // "className": "U_UI_OC", // "style": { // "textAlign": "center", // "padding": "25px 0 25px 0" // }, // innerHTML: UCT // })).Create()).addAttrArray({ // "id": "U_COF" // })[0]; // U.UF.EV.stopBubble(); //阻止冒泡 // return _UDOD; //} /** * 创建一个通知形式的对话框 *{str} UDC 对话框里面的内容。 *{str} UDT 标题 *{str} UDID 对话框id *{int} UDW 宽度 *{int} UDH 高度 * @returns 返回ID为U_COF的对象 **/ //U.UF.UI.Dialog = function (UDC, UDT, UDID, UDW, UDH) { // return new U.UF.UI.Dialog.init(arguments); //} //U.UF.EV.addPrototype(U.UF.UI.Dialog, U.UF.C.AddObj(U.UF.UI.Dialog, { // init: function (UDE) { //添加对话框信息 // var i, _UCE = ["title", "style", "confirmNoClose", "confirmYesClose", "content", "SO"]; // for (i = 0; i < UDE.length; i++) { // this[_UCE[i]] = UDE[i]; // } // }, // Create: function () { //创建对话框 // var i, _UDE, _UDOD, _UDTD, _UDID, _UDSD, _UCB, _USE = { // width: "auto", // height: "auto", // minWidth: "300px" // }, // _UEK = (this.style = this.style || {}); // _USE.forEach(function (UA, UB) { // _UEK[UB] = _UEK[UB] || UA; // }); // _UEK.zIndex = 9999; // _UDE = new U.UF.UI.form({ // top: true, // min: false, // max: false, // style: this.style, // title: "
" + (this.title || "对话框") + "
", // content: this.content, // hst: { // style: { // padding: "0" // } // } // }); //创建对话框 // _UDOD = $$("div", { // "className": "U_UI_OB" // }); // _UDTD = $$("div", { // "className": "U_UI_OBA" // }, _UDOD); // $$("div", { // "onclick": [ // [this.confirmNoClose], // [(_UCB = U.UF.C.apply(_UDE, _UDE.close))] // ], // "innerHTML": "取消", // "className": "U_UI_OBY" // }, _UDTD); // _UDSD = $$("div", { // "onclick": [ // [this.confirmYesClose], // [_UCB] // ], // "innerHTML": "确定", // "className": "U_UI_OBY" // }, _UDTD); //确定按钮 // U.selectEl(_UDE.middle).append(_UDOD); // _UDID = U.selectEl("input", _UDE.middle); // for (i = _UDID.length - 1; i >= 0; i--) { // if ("text,password".indexOf(_UDID[i].type) > -1) { // _UDID[i].focus(); // _UDID[i].onkeypress = U.UF.C.apply(_UDID[i], function () { // U.UF.C.returnkeylogin({ // "obj": _UDSD, // "event": 'onclick' // }); // }); // } // } // } //})); //U.UF.UI.Dialog.init.prototype = U.UF.UI.Dialog.prototype; ///* //弹出提示框,为了同时弹出多个提示框,为多份实例对象 //1、可以像java语言的用法,用new调用多份,例如: var a=new U.AlertB(); //2、也可以省略new的步骤,直接U.Alert(),出来的结果为多份。 //参数一:UTH 内容 //参数二:UTI 无确认按钮的显示时间 //参数三:是否带确认按钮 //返回值: //*/ //U.Alert = function (UTH, UTI, IFQ) { // IFQ === true ? new U.AlertA(UTH, IFQ) : new U.AlertB(UTH, UTI); //} ////为了多份实例,另外建立一个类似类的函数。 ////带有确定按钮的alert //U.AlertA = function (UTH) { // U.UF.UI.Confirm("提示框", {}, null, null, $$("div", { // "style": { // "textAlign": "center", // "margin": "25px 10px 25px 10px", // "max-width": "400px", // "word-wrap": "break-word", // "max-height": "400px", // "overflow": "auto" // }, // innerHTML: UTH // }), true); //} ////自动消失的alert //U.AlertB = function (UTH, UTI) { // this.TI = ((UTI == null || UTI < 0) ? 1000 : UTI); // var _UDPD = U.selectEl("body")[0]; // this.UDOD = U.selectEl($$("div", { // "innerHTML": UTH, // "className": "USalert", // "style": { "cssText": "z-index:9999;left:" + ((US.width / 2 - 160) + _UDPD.scrollLeft) + "px;top:" + ((US.height / 2 - 100) + _UDPD.scrollTop) + "px" }, // "onclick": function () { this.DAlert(true); } // }, U.selectEl("body")[0])).css({ // "top": US.height / 2 - 80 + _UDPD.scrollTop + "px" // }); //} ////为了减少内存消耗,把方法写在原型中。 //U.AlertB.prototype = { // // init: function (UTH, UTI) {//创建alert "id": "USalert", // // this.TI = ((UTI == null || UTI < 0) ? 1000 : UTI); this.UDOD = U.selectEl($$("div", { "innerHTML": UTH, "className": "USalert", "style": { "cssText": "z-index:9999;left:" + (US.width / 2 - 160) + "px;top:" + (US.height / 2 - 100) + "px" }, "onclick": function(){this.DAlert(true);} }, U.selectEl("body")[0])).animate({ "top": US.height / 2 - 80 + "px" }, 300, function(){this.AsynAmAlert();}); // // }, // AsynAmAlert: function () { //等待动画 // this.UTI = setTimeout(function () { this.AmAlert(); }, this.TI || 1000); //异步等待 // }, // AmAlert: function () { //结束动画 // if (this.UTI) { clearTimeout(this.UTI) }; // var _UDOD = U.selectEl(this.UDOD); // if (_UDOD.Parent() == document.body) { // _UDOD.animate({ // "top": _UDOD[0].offsetTop - 70 + "px" // }, 100, function () { this.DAlert(); }) // }; // }, // DAlert: function (UTF) { //移除alert // if (this.TI || UTF) { // U.selectEl(this.UDOD).remove(); // } // } //} //U.UF.EV.addPrototype(U.AlertB, { // // init: function (UTH, UTI) {//创建alert "id": "USalert", // // this.TI = ((UTI == null || UTI < 0) ? 1000 : UTI); this.UDOD = U.selectEl($$("div", { "innerHTML": UTH, "className": "USalert", "style": { "cssText": "z-index:9999;left:" + (US.width / 2 - 160) + "px;top:" + (US.height / 2 - 100) + "px" }, "onclick": function(){this.DAlert(true);} }, U.selectEl("body")[0])).animate({ "top": US.height / 2 - 80 + "px" }, 300, function(){this.AsynAmAlert();}); // // }, // AsynAmAlert: function () {//等待动画 // this.UTI = setTimeout(function(){this.AmAlert();}, this.TI || 1000); //异步等待 // }, // AmAlert: function () {//结束动画 // (this.UTI) && (clearTimeout(this.UTI)); var _UDOD = U.selectEl(this.UDOD); // (_UDOD.Parent() == document.body) && (_UDOD.animate({ "top": US.height / 2 - 70 + "px" }, 100, function(){this.DAlert();})); // }, // DAlert: function (UTF) { //移除alert // if (this.TI || UTF) { U.selectEl(this.UDOD).remove(); } // } //}); //U.UF.C.AddObj(U.Alert,}) //U.Alert.prototype.init.prototype = U.Alert.prototype; ////#region 分页控件 //Namespace.register("U.UF.P"); ////分页控件设置 ///* //功能:传统分页控件,此函数将预先加载。以后需多做几种样式。 //参数一:UDE代表className为UD_SYFLB的div元素 //参数二:UOD代表聊天条数。 //参数三:UDP为整形1,默认第一页,其他数字,则为相应的显示页。 //参数四: UNP代表一页显示多少条数据 //参数五:USN为打印聊天信息的函数 //*/ //U.UF.P.PPage = function (UOD, USN, UNP, UDN, UCF, UTF) { // var i, j, _USE, _UKE, // _UME = U.UF.P.PPage.setPage(USN, UNP, UDN, UCF); // if (U.UF.C.isFunction(UTF)) { // _USE = UTF(this); // _UKE = { //按钮对应事件处理 // "pre": { "onclick": function () { // U.UF.P.PPage.exec(UNP - 1, _UBE[1], UOD, USN, UNP, UDN, UCF); // } // }, //上一页 // "next": { "onclick": function () { // U.UF.P.PPage.exec(UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF); // } // }, //下一页 // "frit": { "onclick": function () { // U.UF.P.PPage.exec(1, _UBE[0], UOD, USN, UNP, UDN, UCF); // } // }, //第一页 // "last": { "onclick": function () { // U.UF.P.PPage.exec(UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF); // } // }, //最后一页 // "input": [ // { // "onkeyup": [U.UF.C.returnkeylogin, [null, function () { // U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, null, UDP); // } ]], // "onclick": function () { // U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, null, UDP); // } // } // ], //输入框 按钮 // "page": [] //页码按钮 变化样式 当前页的样式 // }; // for (i in _USE) { // if (_USE.hasOwnProperty(i) && _UKE[i]) { // if (Array.isArray(_UKE[i])) { // for (j = 0; j < _UKE[i].length; j++) { // } // } // else { // for (j in _UKE[i]) { // _USE[i][j] = _UKE[i][j] // } // } // } // } // } // else if (!UTF) { // 创建分页控件 // U.UF.P.PPage.CPage(_UME[0], UOD, _UME[1], UNP, USN, UDN, UCF) // } // return _UME; //} ////分页控件显示 //U.UF.P.PPage.CPage = function (UDE, UOD, UDP, UNP, USN, UDN, UCF, UDOD) { // var i, _UN, _USP, _UDOD, _UDTD, _UDSD, _UDGD, _UTE, _UAE, _UCE = [], _UBE = []; // for (i = 0; i < 4; i++) { // switch (i) { // case 0: // _UTF = UNP != 1; // break; // case 1: // _UTF = UNP > 1; // break; // case 2: // _UTF = UNP < UDP; // break; // case 3: // _UTF = UNP != UDP; // break; // } // if (_UTF) { // _UBE[i] = UDE[i == 3 ? i + 1 : i]; // } else { // _UCE[i] = "O"; // } // } // if (UDOD) { // //分页控件分页 // _UDTD = U.selectEl(UDOD).Child(), // _UDAD = U.selectEl(_UDTD[0]).childs(), // _UTE = [1, UNP - 1, UNP + 1, UDP]; // U.selectEl(_UDTD[1]).Child()[2].innerText = UNP + "页"; // _UAE = ["O", "T", "S", "F"]; // //跳页赋值 // for (i = 0; i < 4; i++) { // _UDAD.addAttrArray({ // "onclick": _UCE[i] ? "" : function () { // U.UF.P.PPage.exec(_UTE[i], _UBE[i], UOD, USN, UNP, UDN, UCF, UDOD); // }, // "className": "U_Boom_Img_ys2017 UD_SYFYL" + _UAE[i] + (_UCE[i] || "") // }, (UCF.isp && i > 1) ? i + 1 : i); // } // //页码赋值 // if (UCF.isp) { // _UDAD[2].innerText = ""; //清空 // _UN = UNP > 5 ? UNP - 5 : 0; //当前页的范围 // _USP = UNP + UCF.isp > UDP ? UDP : UNP + UCF.isp; // _UAE = U.UF.P.PPage.setPage([_UN, _USP], null, null, UCF); //获取点击事件 // for (i = _UN; i < _USP; i++) { //范围使用 // $$("div", { "onclick": function () { // U.UF.P.PPage.exec(i + 1, _UAE[i - _UN], UOD, USN, UNP, UDN, UCF, UDOD); // }, // "className": "UD_SYFYNO" + ((i + 1 == UNP) ? " UD_SYFYNOO" : ""), // "innerHTML": i + 1 // }, _UDAD[2]); // } // } // U.selectEl(_UDTD[1]).childs(0, 1).addAttrArray({ // "onclick": (_UTE = function () { // U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, UDOD, UDP); // }) // }, 8); // U.selectEl("input", UDOD).addAttrArray({ // "onkeyup": function () { // U.UF.C.returnkeylogin(null, _UTE); // } // }); // } // else { // _UDOD = $$("div", { // "className": "UD_SYFY" // }); // _UDTD = $$("div", { // "className": "UD_SYFYL" // }, _UDOD); // $$("div", { // "className": "U_Boom_Img_ys2017 UD_SYFYLO" + (_UCE[0] || ""), // "onclick": _UCE[0] ? null : function () { // U.UF.P.PPage.exec(1, _UBE[0], UOD, USN, UNP, UDN, UCF, _UDOD); // }, // "title": "首页" // }, _UDTD); // $$("div", { // "className": "U_Boom_Img_ys2017 UD_SYFYLT" + (_UCE[1] || ""), // "onclick": _UCE[1] ? null : function () { // U.UF.P.PPage.exec(UNP - 1, _UBE[1], UOD, USN, UNP, UDN, UCF, _UDOD); // }, // "title": "上一页" // }, _UDTD); // if (UCF.isp && UDP > 0) { // _UDSD = $$("div", { "className": "UD_SYFYN" }, _UDTD); // _UN = UNP > 5 ? UNP - 5 : 0; // _USP = UNP + UCF.isp > UDP ? UDP : UNP + UCF.isp; // _UAE = U.UF.P.PPage.setPage([_UN, _USP], null, null, UCF); //获取点击事件 // for (i = _UN; i < _USP; i++) { // $$("div", { "onclick": function () { // U.UF.P.PPage.exec(i + 1, _UAE[i - _UN], UOD, USN, UNP, UDN, UCF, _UDOD); // }, // "className": "UD_SYFYNO" + ((i + 1 == UNP) ? " UD_SYFYNOO" : ""), // "innerHTML": i + 1 // }, _UDSD); // } // } // $$("div", { // "className": "U_Boom_Img_ys2017 UD_SYFYLS" + (_UCE[2] || ""), // "onclick": _UCE[2] ? null : function () { // U.UF.P.PPage.exec(UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF, _UDOD); // }, // "title": "下一页" // }, _UDTD); // $$("div", { // "className": "U_Boom_Img_ys2017 UD_SYFYLF" + (_UCE[3] || ""), // "onclick": _UCE[3] ? null : function () { // U.UF.P.PPage.exec(UDP, _UBE[3], UOD, USN, UNP, UDN, UCF, _UDOD); // }, // "title": "尾页" // }, _UDTD); // _UDTD = $$("div", { // "className": "UD_SYFYR" // }, _UDOD); // _UDSD = $$("div", { // "className": "UD_SYFYRL" // }, _UDTD); // $$("span", { // "innerHTML": "到" // }, _UDSD); // _UDGD = $$("div", {}, _UDSD); // $$("input", { // "type": "text", // "onkeyup": [U.UF.C.returnkeylogin, [null, function () { // U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, _UDOD, UDP); // } ]] // }, _UDGD); // $$("span", { // "innerHTML": "页" // }, _UDSD); // $$("div", { // "className": "UD_SYFYRZ", // "innerHTML": "确定", // "onclick": function () { // U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, _UDOD, UDP); // } // }, _UDTD); // $$("div", { // "className": "UD_SYFYRR", // "innerHTML": UNP + "页" // }, _UDTD); // UOD.appendChild(_UDOD); // } //} ////函数执行 //U.UF.P.PPage.exec = function (UTF, UFN, UOD, USN, UNP, UDN, UCF, UDOD) { // if (UFN != null) { // var _UDE = U.UF.P.PPage.main(UOD, USN, UTF, UDN, UCF, true); // U.UF.P.PPage.CPage(_UDE[0], UOD, Math.ceil(USN / UDN), UTF, USN, UDN, UCF, UDOD); // UFN(); // } //} ////输入框设置 //U.UF.P.PPage.PageAchieve = function (UFN, UOD, USN, UNP, UDN, UCF, UDOD, UDP) { // var _UN = U.selectEl(event.srcElement).parentElement().find("input")[0].value; // if (U.UF.S.Number.test(_UN)) { // _UN = _UN.toInt(); // if (_UN <= UDP && _UN > 0) { // if (UNP != _UN) { U.UF.P.PPage.exec(_UN, UFN, UOD, USN, UNP, UDN, UCF, UDOD) }; // } // else { // parent.U.Alert("输入范围异常!"); // } // } // else { // parent.U.Alert("无效输入!"); // } //}; ////设置页数函数 //U.UF.P.PPage.setPage = function (USN, UNP, UDN, UCF) { // var i, j, k, _USE, _UKE, _UGE, _UME = [], // _UCE = UCF["fun"], //回调函数 // _UIP = UCF["page"]; //当前使用页数; // if (Array.isArray(USN)) { // for (i = USN[0]; i < USN[1]; i++) { // _UGE = []; // for (j = 0; j < _UCE.length; j++) { // _USE = _UCE[j][1]; // if (_UIP[j] != null) { // _USE = _USE.concat(); // _USE[_UIP[j]] = i + 1; // } // _UGE.push[_UCE[j][0], _USE]; // } // _UME.push(_UGE); // } // return _UME; // } // else { //添加事件处理 // var _UDP = Math.ceil(USN / UDN), //总页数 // _UDE = [1, UNP - 1, UNP + 1, "$(event.srcElement).parentElement().find('input')[0].value", _UDP]; //前一页后一页处理 // for (i = 0; i < _UDE.length; i++) { // _UGE = []; // for (j = 0; j < _UCE.length; j++) { // _USE = _UCE[j][1]; // if (_UIP[j] != null) { // _USE = _USE.concat(); // _USE[_UIP[j]] = _UDE[i]; // } // _UGE.push[_UCE[j][0], _USE]; // } // _UME.push(_UGE); // } // return [_UME, _UDP]; // } //} ////控件设置 //U.UF.P.PPage.main = function (UOD, USN, UNP, UDN, UCF, UTF) { // var i, j, _USE, _UKE, // _UME = U.UF.P.PPage.setPage(USN, UNP, UDN, UCF); // if (U.UF.C.isFunction(UTF)) { // _USE = UTF(this); // _UKE = { //按钮对应事件处理 // "pre": { "onclick": function () { // U.UF.P.PPage.exec(UNP - 1, _UBE[1], UOD, USN, UNP, UDN, UCF); // } // }, //上一页 // "next": { "onclick": function () { // U.UF.P.PPage.exec(UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF); // } // }, //下一页 // "frit": { "onclick": function () { // U.UF.P.PPage.exec(1, _UBE[0], UOD, USN, UNP, UDN, UCF); // } // }, //第一页 // "last": { "onclick": function () { // U.UF.P.PPage.exec(UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF); // } // }, //最后一页 // "input": [ // { "onkeyup": [U.UF.C.returnkeylogin, [null, function () { // U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, null, UDP) // } ]] // }, // { "onclick": function () { // U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, null, UDP); // } // }], //输入框 按钮 // "page": [] //页码按钮 变化样式 当前页的样式 // }; // for (i in _USE) { // if (_USE.hasOwnProperty(i) && _UKE[i]) { // if (Array.isArray(_UKE[i])) { // for (j = 0; j < _UKE[i].length; j++) { // } // } // else { // for (j in _UKE[i]) { // _USE[i][j] = _UKE[i][j] // } // } // } // } // } // else if (!UTF) { // 创建分页控件 // U.UF.P.PPage.CPage(_UME[0], UOD, _UME[1], UNP, USN, UDN, UCF) // } // return _UME; //} ////#endregion ////#region ////所有请求的ajax对象. //U.A.allAjax = []; ////#endregion ///** //* ajax初始化区域 //* //* @param {string} 访问的地址 //* @param {array} 数据库地址,数据库名,存储过程名,存储过程参数的数组 //* @param {function} 回调函数 //* @param {array} 函数传参 //* @returns {object} ajax对象 //-----------这里的传参第一个为loading元素 //*/ //// 删除了一个参数 UCE //U.A.Request = $.ajax = function (str, db, cb, arg) { // //判断浏览器是否在线联网 // if (navigator.onLine) { // var _ajax, //获取所有的传参,参数说明 win 当前域 、 UR ajax原对象 、 EOR 错误回调函数 、 fun 触发的函数地址 、 UDE 服务器传参 、 cb 回调函数 UPE 回调参数 、 UAE ajax对象属性 、 time当前使用时间 // _preajax = U.A.allAjax[U.A.allAjax.length - 1]; //ajax对象 // //判断ajax的时间差,防止恶意用户用循环向服务器不断发送请求,导致服务器瘫痪。 // //恶意请求大于了50次,则判断此用户有恶意攻击嫌疑。 // //计算两次ajax请求的时间差 // var _iftimespan; // if (_preajax) { // _iftimespan = new Date().getTime() - _preajax.date > 50; // } // //如果第一次ajax请求,或者ajax请求小于50次。或者2次发送请求的时间差大于50毫秒,都算没有恶意请求。 // if (!_preajax || _preajax.timespan < 50 || _iftimespan) { //连续发送禁止处理 // _ajax = new U.A.Request.init(arguments); //生成ajax对象 // //此处添加二级域名跨域,完全跨域,无跨域的分支。 // if (_ajax.handleDomain() == true) { // return _ajax.create(); //创建连接,无_header分支 // // //添加有_header和无_header的两个分支。 // // if (_ajax.header) { // // return _ajax.createHeader(_ajax.header); //创建连接,添加_header的目的是可以自己构建_header // // } else { // // // // } // } // } // else { // return { "error": "application has been breached" }; //连接过多错误 // } // } else { U.Alert("网络断开!"); } //} ///** //* ajax初始化区域 //* //* @param {array} ajax参数 //----------[0] 访问的地址 //----------[1] 服务器传参 //----------[2] 回调函数 //----------[3] 函数传参 //-----------这里的传参第一个为loading元素 //*/ //U.A.Request.init = function (arg) { //初始化Ajax对象 // /* // 参数说明 win 当前域 、 UR ajax原对象 、 EOR 错误回调函数 、 fun 触发的函数地址 、 UDE 服务器传参 、 cb 回调函数 // UPE 回调参数 、 UAE ajax对象属性 、 time当前使用时间 // */ // //this.win = window; // win 当前域 // //ajax原对象{ TO: _UAE, D: this.time, N: this.fun, J: (_UOE && ((new Date().getTime() - _UOE.D) < 50)) ? _UOE.J + 1 : _UOE ? _UOE.J : 0 } // //U.A.Request调用示例:U.A.Request("http://cd.1473.cn/php", ["mysql.1473.cn", "CloudSqlTestDb", "selectAllData"],function (r){}) // this.win = window; // win 当前域 // this.ajax = null; //ajax原对象{ TO: _UAE, D: this.time, N: this.fun, J: (_UOE && ((new Date().getTime() - _UOE.D) < 50)) ? _UOE.J + 1 : _UOE ? _UOE.J : 0 } 在函数createAjax里面最后一句话会发送此ajax // this.err = null; // err error是系统关键字 // this.url = arg[0]; // url )。后台地址,形如"http://cd.1473.cn/php"。 // //ajax向后台请求的传参,其形式为:["mysql.1473.cn", "CloudSqlTestDb", "selectAllData","guid","str"],包含了数据库地址,数据库名,数据库存储过程名称,数据库参数...如果没有,则新建一个空数组,用法:var e = U.A.Request("http://cd.1473.cn/ss");.则e为后台返回的值。 // //UDE改成db // this.db = arg[1] || []; // this.cb = arg[2] || ""; //回调函数 cb // this.cbparams = arg[3]; //回调参数 cbparams // //调用方法:U.A.Request(US.AUTH,"UseStudioManage.AddToLoginLog", [US.userInfo.userid || US.EMPTYGUID, US.city.userAllLocation || "", US.ITID], function(){}, [], { type: "Get", "setAsyn": false, "timeout": 1, "CONTENT-TYPE": "application/json" }); //访问日志添加消息 // this.header = arg[4] || ""; //暂时没有用处。浏览器升级后对ajax的功能进行扩展,加入了"对head头部自定义修改"的功能。CONTENT-TYPE:application/x-www-form-urlencoded;charset=UTF-8. // this.time = new Date(); //ajax生成时间..删除,时间保存在第二个参数ajax里面。 //} //U.A.Request.init.prototype = { // /** // * Ajax对象创建 // * // * @param {object} ajax属性 // */ // create: function () { // // var _ajax, // // _header = this.header || {}, //header头部设置 // // _ajaxtype = _header && _header.type ? _header.type : "GET", //请求格式 // // _isasync = U.UF.C.isFunction(this.cb), //默认是同步处理 // // _urlandparams = this.toAjaxFormat(), //生成请求参数 数据结构: // // _url = _urlandparams[0], //连接的后台地址 形如"http://cd.1473.cn/php" // // _db = _urlandparams[1]; //传参参数; // // //get请求就直接拼接 // // if (_ajaxtype.toUpperCase() == "GET") { // // _url += "?" + _db; // // } // // this.ajax = this.createAjax(_url); //生成ajax对象 // // _ajax = this.ajax.systemAjax; //获取系统ajax对象 // // _ajax.open(_ajaxtype, _url, _isasync); //设置ajax请求方法 url 是否异步 // // _header["CONTENT-TYPE"] = _header["CONTENT-TYPE"] || "application/x-www-form-urlencoded;charset=UTF-8"; //请求的type // // //设置请求参数 // // for (i in _header) { // // if ("type,setAsyn".indexOf(i) == -1) { // // try { // // if (i in _ajax) { // // _ajax[i] = _header[i]; // // } else { // // _ajax.setRequestHeader(i, _header[i]); // // } //设置head头部 // // } catch (e) { } // // } // // } // // // 指定服务器返回数据的MIME类型 firfox设置兼容 // // if (_ajax.overrideMimeType) { // // if (_header["responseType"] == "blob") { // // _ajax.overrideMimeType("text/plain; charset=x-user-defined"); // // } else { // // _ajax.overrideMimeType("text/html"); // // } // // } // // //发送请求 // // _ajax.send(_db); // // this.header ? "" : this.header // var i, // _url, // _isdomain, // _db, // _ajax, // _isasync, // r; // var _ajaxtype = _header.type; //用户请求类型,默认1473全部是post请求。 // var _urlandparams = this.toAjaxFormat(); //生成请求参数 数据结构: // _url = _urlandparams[0]; //连接的后台地址 形如"http://cd.1473.cn/php" // _db = _urlandparams[1]; //传参参数; // //如果不传递回调函数,则为同步请求,示例:U.A.Request(US.AUTH,"UseStudioManage.AddToLoginLog", [US.userInfo.userid || US.EMPTYGUID, US.city.userAllLocation || "", US.ITID]);。返回json数据,一直等待服务器返回,如果服务器执行1分钟,页面停顿1分钟。 // if (U.UF.C.isFunction(this.cb)) { // _isasync = true; //函数是否异步 // } // //如果请求为get // if (_ajaxtype.toUpperCase() == "GET") { // _url += "?" + _db; // } // this.ajax = this.createAjax(_url); //生成ajax对象 // _ajax = this.ajax.systemAjax; //获取系统ajax对象 // _ajax.open(_ajaxtype, _url, _isasync); //设置ajax请求方法 url 是否异步 // _header["CONTENT-TYPE"] = _header["CONTENT-TYPE"] || "application/x-www-form-urlencoded;charset=UTF-8" // //设置请求参数 // for (i in _header) { // if ("type,setAsyn".indexOf(i) == -1) { // try { // if (i in _ajax) { // _ajax[i] = _header[i]; // } else { // _ajax.setRequestHeader(i, _header[i]); // } //设置head头部 // } catch (e) { } // } // } // // 指定服务器返回数据的MIME类型 firfox设置兼容 // if (_ajax.overrideMimeType) { // if (_header["responseType"] == "blob") { // _ajax.overrideMimeType("text/plain; charset=x-user-defined"); // } else { // _ajax.overrideMimeType("text/html"); // } // } // //发送请求 // _ajax.send(_db); // //得到服务器返回的值,一般为json,也可能为字符串。如果是异步,则走异步逻辑,否则走同步逻辑 // if (_isasync) { // r = this["setAsyn"](); // } else { // r = this["getAjaxData"](); // } // //返回 // return _isdomain; // }, // /** // * Ajax对象创建 // * // * @param {object} ajax属性 // */ // // create: function () { // // var _header = {}; // // var i, // // _url, // // _isdomain, // // _db, // // _ajax, // // _isasync, // // r; // // var _ajaxtype = "POST"; //用户请求类型,默认1473全部是post请求。 // // var _params = this.toAjaxFormat(); //生成请求参数 数据结构: // // _url = _params[0]; //连接的后台地址 形如"http://cd.1473.cn/php" // // _db = _params[1]; //传参参数; // // //如果不传递回调函数,则为同步请求,示例:U.A.Request(US.AUTH,"UseStudioManage.AddToLoginLog", [US.userInfo.userid || US.EMPTYGUID, US.city.userAllLocation || "", US.ITID]);。返回json数据,一直等待服务器返回,如果服务器执行1分钟,页面停顿1分钟。 // // if (U.UF.C.isFunction(this.cb)) { // // _isasync = true; //函数是否异步 // // } // // //如果请求为get // // if (_ajaxtype.toUpperCase() == "GET") { // // _url += "?" + _db; // // } // // //设置请求超时时间 // // if (_isasync) { // // // 给_header对象添加属性 // // _header.timeout = 90000; // // _header.ontimeout = U.UF.C.apply(this, function () { this.asyn(); }); // // } // // this.ajax = this.createAjax(_url); //生成ajax对象 // // _ajax = this.ajax.systemAjax; //获取系统ajax对象 // // _ajax.open(_ajaxtype, _url, _isasync); //设置ajax请求方法 url 是否异步 // // // 指定服务器返回数据的MIME类型 firfox设置兼容 // // _ajax.setRequestHeader("CONTENT-TYPE", "application/x-www-form-urlencoded;charset=UTF-8"); // // // 指定服务器返回数据的MIME类型 firfox设置兼容 // // if (_ajax.overrideMimeType) { // // _ajax.overrideMimeType("text/html"); // // } // // //发送请求 // // _ajax.send(_db); // // //得到服务器返回的值,一般为json,也可能为字符串。 // // if (_isasync) { // // r = this.setAsyn(); // // } else { // // r = this.getAjaxData(); // // } // // //返回 // // return r; // // }, // /** // * 根据请求的url判断域名是否存在跨域。三种跨域情况 // * @return // */ // handleDomain: function () { // //1、二级域名跨域,一般是a.1473.cn访问b.1473.cn。。可能是正常访问,也可能是iframe访问。, // //2、完全跨域。www.a.com访问www.b.com。 // //3、没有跨域的情况 // var _isdomain, _url, _frame; // var _params = this.toAjaxFormat(); //生成请求参数 数据结构: // _url = _params[0]; //连接的后台地址 形如"http://cd.1473.cn/php" // _isdomain = this.isDomain(_url); // //1473跨域处理,判断是否是1473域,如果不是,则是外域调用 // if (_isdomain[0] && !_isdomain[1]) { // 判断是否是1473主域 // //如果是1473域的处理 // _frame = window.frames; //所有加载的域,对1473域下所有iframe进行循环,目的是找到可跨域的iframe。 // for (i = 0; i < _frame.length; i++) { // try { // if (!_url.indexOf(_frame[i].location.protocol + "//" + _frame[i].location.host)) { //找到指定的跨域 // return _frame[i].U.A.Request(this.url, this.db, this.cb, this.cbparams, this.header); //跨域获取 // } // } catch (e) { } // } // } // //完全跨域判断非1473的域名, // else if (!_isdomain[1] && _url.indexOf("1473.cn") > -1 && U.selectEl("#U_Domain")[0]) { //其他域名跨域处理 // //其他站点,跨域形式访问:例如:http://a.com/ 在页面中调用U.A.Request(US.AUTH,"UseStudioManage.AddToLoginLog", [US.userInfo.userid || US.EMPTYGUID, US.city.userAllLocation || "", US.ITID]); // this.goDomain(); //外站跨域调用 // return false; // } // return true; // }, // //把传参格式转换为Ajax请求格式 // // 刑如:US.AUTH,"AddToLoginLog", [US.userInfo.userid , US.city.userAllLocation , US.ITID] 转换为下面的格式 // // 格式:"http://main.1473.cn/Uses.ashx",US.userInfo.userid || US.EMPTYGUID +"&" + US.city.userAllLocation || ""+ "&" + US.ITID, "http://main.1473.cn/Uses.ashx"(默认请求地址,如果第一个参数不在U.A.backAddress中,则使用第三个) // /* // * @return {array} 域、 加密参数 // */ // toAjaxFormat: function () { // var _userinfo, // _useurl, // _url = this.url, //这个是请求参数 // _params = U.UF.C.urlEncode(this.db.concat()), //参数进行加密 // _source = _url.indexOf(":") > -1 && U.UF.C.isUrl(_url), //判断来源是否是链接 // _requestarr = _url.split("."); //这里拆分1473的请求 // //通过链接方式去访问 // // if (_source) { // _useurl = _url; // _params = "mode=" + _params; //设置传参 // // } // // //相对路径访问方式 // // else { // // _useurl = window.location; // // _useurl = window.location ? _useurl.protocol + "//" + _useurl.host + "/" + _url : "./" + _url; // // _params = "mode=" + _params; // // } // //请求中添加用户的信息 // try { // //获取全局变量US // if (parent.US) { // _userinfo = top.US.userInfo; //获取用户的信息 // //如果用户的信息存在那么拼接用户的信息 // if (_userinfo && _userinfo.UserId) { // _params += "&UserId=" + _userinfo.UserId + "&LoginId=" + _userinfo.LoginId; // } // //设置1473项目传参的id // _params += "&PageId=" + US.pageId + "&SystemId=" + US.systemId; // } // } // catch (e) { } // //请求的地址,参数,请求的后台函数名 // return [_useurl, _params]; // }, // //完全跨域设置(此处非1473域名区域)处理区域 // goDomain: function () { // // 获取回调参数 // var _loading = this.cbparams ? this.cbparams[0] : null; // // 加载loading // if (_loading) { // U.UF.DL.loading(_loading[0]) // } else { // U.UF.DL.loading(_loading, _loading[1]) // } // // (_UDE) && (U.UF.DL.loading(_UDE[0] || _UDE, _UDE[1])); //设置loading // // 页面消息传递 // new U.UF.EV.message({ // "obj": "#U_Domain", // "Sender": true, //消息发送 // "me": U.UF.C.apply(this, function (_data) { //接受到跨域的ajax的回调处理 // var _dataarr = _data[2].split("="); // //后台设置了cookie 前台同时响应 // if (_dataarr[1] == "") { // U.UF.Cookie.del(_dataarr[0]); // } else { // U.UF.Cookie.set(_data[2]); // } // //document.wincookie = _data[2]; //记录cookie // if (this.asyn) {//回调函数 // this.asyn(_data[0]) // } // }) // }).post([this.url, this.db], "domain"); //跨域传参 // }, // /** // * 获取链接地址 // * // * @param {url} 连接地址 // -----------[0] 是否为1473域 // -----------[0] 是否为主域 // */ // isDomain: function (URL) { // var _url; // //用本地html打开网站时,没有window.location。 // if (window.location) { // //获取当前域名地址栏,不包含目录结构。例如: // _url = window.location.protocol + "//" + window.location.host; //当前域 // if (_url.indexOf("1473.cn") > -1 && URL.indexOf("1473.cn") > 0) { // return [true, !URL.indexOf(_url)]; // } else { // return [false, false]; // } // } // }, // /** // * 创建Ajax对象 // * // * @param {url} 连接地址 // * @returns {object} ajax对象 // */ // createAjax: function (url) { // //从已经存在的ajax对象中找到已经结束请求的ajax对象,重新使用,避免ajax对象没有释放,重新创建的问题。 // //Ajax兼容 // var i, _ajax, _xhr, _url, _ajaxobj = U.A.allAjax, // _preajax = _ajaxobj[_ajaxobj.length - 1], // _xhr = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]; //ajax对象 // // 获取当前域名 // if (window.location) { // _thisUrl = window.location.protocol + "//" + window.location.host; // } else { // _thisUrl = ""; // } // //获取可以使用的Ajax对象 // for (i = 0; i < _ajaxobj.length; i++) { //在ajax里找到使用对象 // if ((_ajax = _ajaxobj[i].systemAjax).readyState == 4) { // _ajax.onreadystatechange = function () { }; //设置回调为空 // _ajax.abort(); //停止 // return _ajaxobj[i]; // } // } // //这里创建Ajax对象 // try { _ajax = new window.XMLHttpRequest(); } //浏览器默认ajax对象 // catch (e) { // for (i = 0; i < _xhr.length; i++) { //ie6-系列使用 // try { // _ajax = new ActiveXObject(_xhr[i]); // break; // } catch (e) { } // } // } // //h5创建跨域ajax // if (url.indexOf(_thisUrl) == -1 && window.XDomainRequest) { // _ajax = new window.XDomainRequest(); // } // //疑似非法ajax请求次数记录 // var _timespan; // //如果当前发送的ajax请求和上一次发送的ajax请求时间小于0.05秒。则判断为循环非法操作。 // if (_preajax && ((new Date().getTime() - _preajax.date) < 50)) { // _timespan = _preajax.timespan + 1; //恶意攻击+1. // } else { // if (_preajax) { // _timespan = _preajax.timespan; // } else { // _timespan = 0; // } // } // //(_preajax && ((new Date().getTime() - _preajax.D) < 50)) ? _preajax.J + 1 : _preajax ? _preajax.J : 0; // //生成ajax请求 // var ajax = { // systemAjax: _ajax, //系统ajax new window.XMLHttpRequest(); //systemajax // date: this.time, //当前时间 new Date(); //date // fun: this.url, //向后台发送请求的函数名称。 //fun // timespan: _timespan //与上一次发送Ajax请求的时间差距。 //timespan // }; // _ajaxobj.push(ajax); //把这次的ajax请求记录到数组,目的是方便以后获取查询过的ajax。1、为了找错误,2、为了判断ajax的时间差,防止恶意用户用循环向服务器不断发送请求,导致服务器瘫痪。 // //return (_UDE[_UDE.length] = { TO: _UAE, D: this.time, N: this.fun, J: (_UOE && ((new Date().getTime() - _UOE.D) < 50)) ? _UOE.J + 1 : _UOE ? _UOE.J : 0 }); // return ajax; // }, // //设置异步请求 // setAsyn: function () { // var _ajax = this.ajax.systemAjax, //ajax对象 // _loading = this.cbparams, //回调参数 loading // _isundefined = U.UF.Ut.isUndefined(_ajax.onload), //判断兼容问题 // _cb; // if (_isundefined) { // //回调函数设置 // _cb = U.UF.C.apply(this, function () { // if (this.ajax.systemAjax.readyState == 4) {//已经加载成功 // this.asyn(); // } // }); // } // else { // _cb = U.UF.C.apply(this, function () { // this.ajax.systemAjax.status = 200; //设置成功状态 // this.asyn(); //调用跨域统一处理 // }); //回调函数设置 // } // // 设置loading // if (_loading && _loading[0]) { // if (_loading[0][0]) { // U.UF.DL.loading(_loading[0][0], _loading[0][1]); // } else { // U.UF.DL.loading(_loading[0], _loading[0][1]); // } // } // // (_cbParams && _cbParams[0]) && (U.UF.DL.loading(_cbParams[0][0] || _cbParams[0], _cbParams[0][1])); // //设置错误和异步请求 // // 设置ajax回调函数 // if (_isundefined) { // _ajax.onreadystatechange = _cb; // } else { // _ajax.onload = _cb; // } // // 设置ajax错误时的处理 // try { // _ajax.onerror = U.UF.C.apply(this, function () { // this.ajax.systemAjax.status = 500; //设置错误为500 // this.asyn(); //异步处理 // }); // } catch (e) { } // }, // /** // * 服务器异步加载成功后,得到返回值,取消loading,然后回调. // * // * @param {boolean} 是否可以直接通过 不进行ajax流程判断 // * @param {string} 绕过ajax流程 传参 // */ // asyn: function (data) { // try { // //ajax请求成功该请求的请求数改成0 // if (this.ajax) { // this.ajax.timespan = 0; // } // var _loading = this.cbparams, //loading 元素 // _data = this.getAjaxData(data), //ajax string 数据 生成 json数据集 // _timeSpan = (new Date()).getTime() - this.time.getTime(); //ajax总共耗时 // // 取消loading // if (_loading && _loading[0]) { // if (_loading[0][0]) { // U.UF.DL.uploading(_loading[0][0]); // } else { // U.UF.DL.uploading(_loading[0]); // } // } // // (_UPE && _UPE[0]) && (U.UF.DL.uploading(_UPE[0][0] || _UPE[0])); //取消loading // //访问时间太长或者出现了错误 输出控制台 // if (_timeSpan > 1000 || _data.error) { // (U.UF.C.console({ "T": _timeSpan, "N": this.url, "V": _data.error })); // } // //关闭连接 // if (_data.httpRequest.abort) { // _data.httpRequest.abort(); // } // //回调数据 // if (this.cb && _data.value !== null) { // this.cb.call(this.win, _data) // } // } catch (e) { U.UF.C.console(e); } // }, // /** // * 生成数据 // * // * @param {string} 绕过ajax流程 传参 // * @return {string} 数据参数 // */ // getAjaxData: function (data) { // var _iserror, _ajax; // //获取ajajx对象 // if (this.ajax) { // _ajax = this.ajax.systemAjax; // } // else { // _ajax = {}; // } // var _ajaxattr = { httpRequest: _ajax, status: null, value: null, _context: this.cbparams }; //ajax对象使用 // //请求成功处理 // if (_ajax.status == 200) { // _ajaxattr.value = data || this.getBackStrToJson(); //生成返回的参数 // } // //错误处理. // else { // _ajaxattr.status = { // "status": _ajax.status, // "statusText": _ajax.statusText // }; // } // return _ajaxattr; //生成数据返回 // }, // /** // * 得到后台返回的字符串,再把后台返回的字符串生成一个json对象 // * // * @return {object} json值 // */ // getBackStrToJson: function () { // var _ajax = this.ajax.systemAjax, //ajax对象 // _resXml = _ajax.responseXML; //xml对象 // //如果服务器返回的为xml对象 // if (_resXml) { // _resXml = _resXml.xml // } // if (!_resXml) { // _resXml = _ajax.responseText; //返回的值 // _resXml = U.UF.C.toJson(_resXml); //生成对象 // } // return _resXml; // } //} //#endregion //#region ///** //* Flash上传初始化 //* //*/ //U.UF.UP.FOnload = function () { // try { // var _obj = U.UF.UP.FTF; //当前上传的元素 // _obj["EL"].SetStage(_obj["WH"], _obj["FT"], _obj["GS"] || "*"); //加载插件初始化 // return true; // } // catch (e) { // return false; // } //} ///** //* 上传的错误提示 //* //* @param {error} 错误信息 //*/ //U.UF.UP.FLEX = function (err) { // U.Alert(err); // U.UF.C.console(err); //错误函数控制台处理 //} ///** //* 添加上传文件 上传文件的显示 //* //* @param {error} 错误信息 //*/ //U.UF.UP.FLAdd = function (UDE, UL) { // var _UDOD = U.UF.UP.FTF.EL, //当前上传的元素 // _UDID = _UDOD.ID || _UDOD.name; // if (U.UF.UP.FTF[_UDID] && U.UF.UP.FTF[_UDID].FT && U.UF.UP.FTF[_UDID].FT["select"]) { // U.UF.UP.FTF[_UDID].FT["select"](UDE, UL); // } //} ////上传所有文件完毕 //U.UF.UP.FLACP = function (UFL) { // var _UDOD = U.UF.UP.FTF.EL, // _UDID = _UDOD.ID || _UDOD.name; // if (U.UF.UP.FTF[_UDID] && U.UF.UP.FTF[_UDID].FT && U.UF.UP.FTF[_UDID].FT["AFCP"]) { // U.UF.UP.FTF[_UDID].FT["AFCP"](UFL); // } //} ////上传的进度条 //U.UF.UP.FLJD = function (UDE, FID) { // var _UDOD = U.UF.UP.FTF.EL, // _UDID = _UDOD.ID || _UDOD.name; // if (U.UF.UP.FTF[_UDID] && U.UF.UP.FTF[_UDID].FT && U.UF.UP.FTF[_UDID].FT["progress"]) { // U.UF.UP.FTF[_UDID].FT["progress"](UDE, FID); // } //} ////上传文件成功同时服务端返回了数据 //U.UF.UP.FSLCP = function (UDAT, FID) { // var _UDOD = U.UF.UP.FTF.EL, // _UDID = _UDOD.ID || _UDOD.name; // if (U.UF.UP.FTF[_UDID] && U.UF.UP.FTF[_UDID].FT && U.UF.UP.FTF[_UDID].FT["getData"]) { // U.UF.UP.FTF[_UDID].FT["getData"](UDAT, FID); // } //} ////上传文件判断是否存在 //U.UF.UP.IsFUp = function (UWJL, FID) { // var _UDOD = U.UF.UP.FTF.EL, // _UDID = _UDOD.ID || _UDOD.name; // if (U.UF.UP.FTF[_UDID] && U.UF.UP.FTF[_UDID].FT && U.UF.UP.FTF[_UDID].FT["FUP"]) { // U.UF.UP.FTF[_UDID].FT["FUP"](UWJL, FID); // } //} ////上传单个文件完毕 //U.UF.UP.FLCP = function (data) { // U.Alert("等待服务器的响应..."); //} //#endregion /** * 设置文件下载 * * @param {string} 上传成功回调函数 * @param {string} 上传成功回调函数 */ //U.UF.UP.Down = function (str1, str2) { // if ("createElementNS" in document) { //html5 文件另存为 // if (!str2) { // str2 = document.documentElement.outerHTML // }; // var url2, // _url1 = window.URL || window.webkitURL || window, // _str = new Blob[str2]; // url2 = document.createElementNS("http://www.w3.org/1999/xhtml", "a"); // url2.href = _url.createObjectURL(_str); // url2.download = str1; // U.UF.EV.simulateMouseClicks(url2, "click"); // } // else { //IE文件另存为 // if (str2) { // var _iframe = $$("iframe", // { // "display": "none" // }); // U.UF.C.iframeSameDomain(_iframe, str2, function () { // _iframe.contextWindow.document.execCommand("SaveAs"); // }); // } // else { // document.execCommand("SaveAs"); // } //当前文档保存 // } //} /** * 根据条件,对json数组进行排序 * * @param {array} 需要进行选择的json数组。 * @param {number} 排序方式 1正序 -1倒序 * @return {string} 排序的条件,json数组中的键名 实例一 var a = [{id:3},{id:1},{id:2}]; U.Json.sort(a,"id"); */ U.Json.sort = function (arr, key, isreverse) { //排序 isreverse = isreverse || 1; arr = arr.sort(function (obj1, obj2) { var _value, _type, //比较大小的类型 _isobj = U.UF.C.isObject(obj1); //判断比较的大小是否为对象 //对象的大小匹配 if (_isobj) { _type = U.UF.C.getType(obj1[key] || obj2[key]).capitalizeFirstLetter(); //由于类型的值有可能是null或者是undefined,判断两种比较安全 _value = U.UF.Ut["compare" + _type](obj1[key], obj2[key]); //得到匹配的大小 } //非对象的处理方式 U.UF.Ut.compare+type 是一些列的对象比较大小的方法 else { _type = U.UF.C.getType(obj1).capitalizeFirstLetter(); _value = U.UF.Ut["compare" + _type](obj1, obj2); //得到匹配的大小 } //isreverse 用于判断倒序还是正序,如果是-1就是倒序,如果是1就是正序 _value = isreverse * (_value ? 1 : -1); return _value; }); return arr; } /** * 判断是否为错误 * * @param {Error} 错误对象值 * @return {boolean} 是否为错误类型 */ U.UF.Ut.isError = function (UDE) { return U.UF.C.isObject(UDE) && U.UF.C.objectToString(UDE) == "[object Error]"; } /** * 判断是否为正则 * * @param {RegExp} 正则值 * @return {boolean} 是否为RegExp */ U.UF.Ut.isRegExp = function (UDE) { return U.UF.C.isObject(UDE) && U.UF.C.objectToString(UDE) == "[object RegExp]"; } /** * 判断是否为Undefined * * @param {number} 判断数组是否有值 * @return {boolean} 是否为number */ U.UF.Ut.isUndefined = function (UDE) { return (UDE === void 0); } /** * 判断是否是无限循环数字 * * @param {number} 判断数组是否有值 * @return {boolean} 是否为number */ U.UF.Ut.isFinite = function (UDE) { return !isNaN(parseFloat(UDE)) && isFinite(UDE); } /** * 判断是否为NaN * * @param {array} 判断数组是否有值 * @return {boolean} 是否为number */ U.UF.Ut.isNaN = function (UDE) { return UDE.toString() == 'NaN' } /** * 判断是否为字符串数字 * * @param {array} 判断数组是否有值 * @return {boolean} 是否为number */ U.UF.C.isStringInt = function (UDE) { return U.UF.C.isNumber(UDE) || U.UF.S.Num.test(UDE); } /** * 判断是否为空 * * @param {object} 判断内容是否为空 * @return {boolean} 是否为null */ U.UF.Ut.isNull = function (UDE) { return UDE === null; } /** * 判断是否为bool * * @param {array} 判断数组是否有值 * @return {boolean} 是否为boolean值 */ U.UF.Ut.isBoolean = function (UDE) { return typeof UDE === "boolean"; } /** * 判断数组是否可用 * * @param {array} 判断数组是否有值 * @return {boolean} 是否为有值数组 */ U.UF.Ut.isArrayLike = function (UDE) { return Array.isArray(UDE) && UDE.length > 0; } /** * 判断是否支持播放 * * @param {string} 指定的格式 mp3、mpo4 * @return {number} 是否支持改格式播放 -----------[0] 不支持 -----------[1] 支持 */ U.UF.C.isPlay = function (type) { var _video = U.MD.V.vi(); //获取h5视频播放对象 //判断浏览器是否支持video标签 if (_video) { if (_video.isPlay(type, $$("video"))) { return 1; }; return 0; } return _video; } //#region RadioList //选择框使用 U.UF.UI.RadioList = function (UDOD, UDE, cb) { return new U.UF.UI.RadioList.init(UDOD, UDE, cb); } U.UF.EV.addPrototype(U.UF.UI.RadioList, U.UF.UI.RadioList.init = function (UDOD, UDE, cb) { this.UDTD; this.UDE = UDE; this.UDOD = UDOD; this.cb = cb; this.create(UDOD); }, U.UF.UI.RadioList.create = function (UDOD) { var i, _UDTD, _UDE = this.UDE, _UN = Guid.guidNoDash(), _UDFD = $$("frag"); if (_UDE) { UDOD.innerText = ""; for (i in UDE) { if (UDE.hasOwnProperty(i)) { _UDTD = $$("div", { "innerHTML": UDE[i], "style": { "cssText": "margin-left:5px;" } }, _UDFD); _UDTD = $$("input", { "type": "radio", "value": i, "name": _UN, "checked": i ? false : true, "onclick": function () { this.chang(); } }, _UDTD); if (!i) { this.UDTD = _UDTD }; } } UDOD.appendChild(_UDFD); } else { _UDTD = U.selectEl("input[type='radio']", UDOD).addAttrArray({ "name": _UN, "onclick": function () { this.chang(); } }); for (i = 0; i < _UDTD.length; i++) { if (_UDTD[i].checked) { this.UDTD = _UDTD[i]; break; } } } //设置相同的name }, U.UF.UI.RadioList.value = function () { return this.UDTD.value; }, //当前聚焦元素的值 U.UF.UI.RadioList.element = function () { return this.UDTD; }, //当前聚焦元素 U.UF.UI.RadioList.chang = function () { var _UDOD = event.srcElement; if (_UDOD != this.UDTD) { this.UDTD = _UDOD, (this.cb) && (this.cb(_UDOD)) }; } //改变事件 // U.UF.C.AddObj(U.UF.UI.RadioList, { // init: function (UDOD, UDE, cb) { // this.UDTD; // this.UDE = UDE; // this.UDOD = UDOD; // this.cb = cb; // this.create(UDOD); // }, // //生成RadioList // create: function (UDOD) { // var i, _UDTD, _UDE = this.UDE, // _UN = Guid.guidNoDash(), // _UDFD = $$("frag"); // if (_UDE) { // UDOD.innerText = ""; // for (i in UDE) { // if (UDE.hasOwnProperty(i)) { // _UDTD = $$("div", { // "innerHTML": UDE[i], // "style": { // "cssText": "margin-left:5px;" // } // }, _UDFD); // _UDTD = $$("input", { // "type": "radio", // "value": i, // "name": _UN, // "checked": i ? false : true, // "onclick": function () { this.chang(); } // }, _UDTD); // if (!i) { this.UDTD = _UDTD }; // } // } // UDOD.appendChild(_UDFD); // } else { // _UDTD = U.selectEl("input[type='radio']", UDOD).addAttrArray({ // "name": _UN, // "onclick": function () { this.chang(); } // }); // for (i = 0; i < _UDTD.length; i++) { // if (_UDTD[i].checked) { // this.UDTD = _UDTD[i]; // break; // } // } // } //设置相同的name // }, // value: function () { // return this.UDTD.value; // }, //当前聚焦元素的值 // element: function () { // return this.UDTD; // }, //当前聚焦元素 // chang: function () { // var _UDOD = event.srcElement; // if (_UDOD != this.UDTD) { this.UDTD = _UDOD, (this.cb) && (this.cb(_UDOD)) }; // } //改变事件 )); U.UF.UI.RadioList.init.prototype = U.UF.UI.RadioList.prototype; //#endregion