12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954 |
- //----------------------------------------------------
- /*-----------------------------------------未被使用的函数-------------------------------------------------------------------------------*/
- //模块化编程,未使用到
- U.UF.C.define = function () {
- var get, _UT, _UAE, _UME = {}, _ = function (UA, UB, UC) { return new _UAE.init(UA, UB, UC); } //require, exports, module
- _.prototype = _UAE = {
- entity: {},
- init: function (UA, UB, UC) { //初始化使用
- var _UDE, _UL = arguments.length;
- _UDE = _UL == 1 ? "" : "";
- },
- load: function (URE) { //预加载模块
- var _UPE = this.path(URE), _UAE = (this.entity[_UPE] = new _UT(_UPE, this)); //获取值
- U.UF.DL.asynLoadJs(_UPE, "js", U.UF.C.apply(this, [[this.cb]])); //获取
- },
- cb: function () { //加载成功
- },
- path: function (URE) { //获取路径
- var i, _UTH, _UPE = "", _UDE = URE.split("/");
- switch (_UDE[0]) { case "": _UPE = _UME.base || window; break; case ".": _UPE = ""; break; default: break; }
- _UPE += (_UDE.length > 1 ? (_UME.paths[(_UTH = _UDE.slice(-1).join("/"))] || _UTH) : "") + (_UME.alias[_UDE[0]] || _UDE[0]); _("", "", _UPE);
- return _UPE;
- },
- get: function (UPE) { //获取实体值
- return this.entity[_UPE] || (this.entity[_UPE] = new _UT(_UPE, this));
- },
- set: function () { //设置值
- }
- };
- get = function () { }
- //模块记录类
- _UT = function () { var _UDE = arguments;U.UF.C.AddObj(this, { url: _UDE[0], et: _UDE[1] }); }
- //方法
- _UT.prototype = {
- get: function () { //搜索
- },
- set: function () { //设置
- }
- }
- //配置文件
- _.config = function (UDE) {
- var i, _UAE; _UME = UDE || { base: "./", alias: {}, vars: {}, map: [], preload: [], charset: "utf-8", paths: {} }; //模块初始化 base 路径 alias 识别 vars 变量映射 map 路径映射 preload预加载 charset 编码 paths路径配置
- _UAE = _UME.preload; for (i = 0; i < _UAE.length; i++) { _.use(_UAE[i]); } //初始化
- }
- //引用
- _.use = function (URE) { _(URE); }
- _UAE.init.prototype = _UAE; return _;
- }
- /**
- * 判断元素是否是上级元素的的子元素
- *
- * @param {element} 该元素为父元素
- * @param {element} 需要判断的元素
- * @return {boolean} 获取元素的大小
- */
- /*U.UF.EL.isChild = function (UDOD, UDTD) {
- if (UDOD && UDTD) {
- if (UDOD.contains) { //ie chrome 兼容
- if (UDOD.contains(UDTD)) {
- return true;
- }
- }
- else if (UDOD.compareDocumentPosition) { //firefox
- if (!(!!(UDOD.compareDocumentPosition(UDTD)))) {
- return true;
- }
- }
- }
- return false;
- }*/
- /**
- * 获取当前元素上级的可编辑元素
- *
- * @param {element} 当前元素
- * @return {element} 可编辑的元素
- */
- /*U.UF.EL.getAncestorEditElement = function (UDOD) {
- var _UDBD = document.body;
- while (UDOD && _UDBD != UDOD) {
- if (UDOD.tagName) {
- if ("textarea,input".indexOf(UDOD.tagName.toLocaleLowerCase()) > -1 || UDOD.contentEditable == "true") { //可编辑元素
- break;
- }
- }
- UDOD = U.selectEl(UDOD).Parent();
- }
- return UDOD;
- }*/
- /**
- * 获取children不为文本
- *
- * @param {element} 当前元素
- * @param {string} 父亲的id
- * @return {array} 获取所有的子节点
- */
- /*U.UF.EL.getChildrenNoText = function (UAE, UTP) {
- var i, //用于循环
- _UDE = []; //用于存放数据且返回
- for (i = 0; i < UAE.length; i++) {
- if (UAE[i].nodeType == 1 && (!UTP || UTP.indexOf(UAE[i].tagName.toLowerCase()) == -1)) {
- _UDE.push(UAE[i])
- };
- }
- return _UDE;
- }*/
- /**
- * 获取元素offsetParent 兼容ie8-
- *
- * @param {element} 元素
- * @param {boolean} 是否从上级开始找起
- * @param {string} 规定的position值
- * @return {elememt} offsetParent
- */
- /*U.UF.EL.offsetParent = function (UDOD, UTF, UPT) {
- var _UTP, _UDBD = document.body;
- (!UTF) && (UDOD = UDOD.offsetParent);
- while (UDOD && UDOD != _UDBD) {
- _UTP = U.UF.EL.getStyle(UDOD, "position");
- if ((!UPT && _UTP != "static") || (_UTP == UPT)) {
- break;
- }
- UDOD = UDOD.offsetParent;
- }
- return UDOD || _UDBD;
- }*/
- //#region 首页播放器
- //播放器用户信息区域
- U.UF.MPlayer.NBF = function (UDE, UIF, UTF, UAE) {
- U.UF.MPlayer.SYBFYY(UDE, null, UTF, UIF, UAE); U.UF.MPlayer.JJYYSJ(0); //加载音乐
- }
- //直接播放音乐
- U.UF.MPlayer.SYBFYY = function (UDE, UDMD, UTF, UIF, UAE) {
- var _UGE = U.MD.D.H.ET["FL"], _UDOD = U.selectEl("#UD_MP"), _UDTD = _UDOD.find(".UD_MPRLSL").find("div"); UIF = UIF || (US.userInfo.userid ? US.userInfo : UDE);
- if (_UGE["Entity"] != UDE) { //切换歌曲
- U.selectEl(_UDTD.find("img", 0)[0] || $$("img", {}, _UDTD[0])).addAttrArray({ "onerror": U.MD.C.imgError, "title": _UDTD[4].innerText = UIF.UserNickName || UIF.UserName, "alt": _UDTD[4].innerText, "src": U.MD.C.getHeadImage(UIF.UserThumbnailImageHead) });
- _UDTD[1].style.display = "block"; _UDTD[5].innerText = UDE.UserallDirectoryName || UDE.UserFilesName;
- _UGE["Entity"] = UDE; _UGE["UBMT"] = UTF; (!UTF) && (setTimeout(function(){U.UF.MPlayer.AsynSYBFYY(UDE);}), U.UF.MPlayer.ZPYY([_UDOD.find(".UD_MPLZ")[0], _UDOD.find(".UD_SYMRTLTLO")[0]], true));
- _UGE["LOD"] = _UDTD = _UDOD.find(".UD_MPRLX").find("div"); _UDTD[2].style.width = _UDTD[3].style.width = _UDTD[4].style.left = "0px"; _UDTD[0].innerText = _UDTD[5].innerText = "00:00"; //
- _UDTD = _UGE["PF"]["OB"]; (_UDTD) && (_UDTD.className = "UD_MPRRROXO"); (UDMD) && ((_UGE["PF"]["OB"] = UDMD).className = "UD_MPRRROXO UD_MPRRROXOO");
- }
- else { _UDOD.find(".UD_MPLZ")[0].onclick(); } //暂停播放
- }
- //异步播放音乐
- U.UF.MPlayer.AsynSYBFYY = function (UDE) {
- var _UDOD = U.selectEl("#UD_MP")[0], _UDTD = U.selectEl(".UD_SYMMLSYTO", _UDOD); _UIE = _UDTD[0].offsetHeight / _UDTD.Parent().offsetHeight;
- U.MD.D.H.ET["FL"]["MO"].loadAplay(US.FILESYSTEMURL + UDE.UserFilesServerName, _UIE); //播放器音乐
- }
- //弹出音乐查看
- U.UF.MPlayer.TCCKYY = function (UDOD) {
- if (!U.MD.U.L.isLogin()) { //登录用户使用
- var i, _UDE, _UIE, _UTP, _UDAD = U.selectEl(UDOD).parentElement().childs();
- for (i = 0; i < 2; i++) { UDOD == _UDAD[i] && _UDAD[i + 2].style.display != "block" ? (_UIE = i) : (_UDAD[i + 2].style.display = "none"); } //弹出和缩小
- (_UIE != null && (U.UF.F.topWindow(_UDAD[_UIE + 2]), (_UDAD = _UDAD.childs(_UIE + 2, 1)) && !_UDAD.Child().length)) && (_UDAD.addAttrArray({ "innerText": "", "onscroll": U.UF.EV.scrollLoad({function(){U.UF.MPlayer.GDTCCKYY(_UIE, _UDAD[0]) },_UDAD.addAttrArray) })[0], U.UF.MPlayer.GDTCCKYY(_UIE, _UDAD[0], 1)); //滚动加载查看
- }
- }
- //滚动加载音乐
- U.UF.MPlayer.GDTCCKYY = function (UIE, UDOD, UP) {
- UP = UP || this.P + 2;
- var _UDE, _UI;
- var _UGE = U.MD.D.H.ET;
- var _UIF = US.userInfo;
- UIE ? (_UDE = U.Json(U.MD.DK.M.diskOperatingSwitch(US.userInfo.userid)[0]).select({ "UserDirectoryExtendType": "mp3" })) : (_UDE = _UGE["UL"]["WS"][0]);
- _UI = _UDE.length;
- if (_UDE) {
- _UDE = U.MD.D.D.FYGBL[null, _UDE], UP, [100, _UI];
- if (_UDE[0] && _UDE[0].length) {
- U.UF.MPlayer.SYYYCK(_UDE[0], UDOD, UIE);
- }
- else {
- if (UIE || _UI % 100) { this.P--; }
- else {
- U.UF.MPlayer.GSDSXS(_UI, null, function(){U.UF.MPlayer.GDTCCKYY(UIE, UDOD, UP);});
- }
- }
- }
- }
- //音乐查看
- U.UF.MPlayer.SYYYCK = function (UDE, UDOD, UIE) {
- var i, _UTF, _UDTD, _UDSD, _UIF = US.userInfo, _UL = U.selectEl(UDOD).Child().length, _UDFD = $$("frag"), _UGE = U.MD.D.H.ET["FL"], _UCE = _UGE["Entity"] || {};
- for (i = 0; i < UDE.length; i++) {
- _UDTD = $$("div", { "className": "UD_MPRRROXO" + ((_UTF = (_UCE["UserFilesID"] ? (_UCE["UserFilesID"] == UDE[i]["UserFilesID"]) : (_UCE["UserDirectoryID"] == UDE[i]["UserDirectoryID"]))) ? " UD_MPRRROXOO" : ""), "ondblclick": function(){U.UF.MPlayer.JJYYSJ, [UIE]], [U.UF.MPlayer.SYBFYY(UDE[i], this);} }, _UDFD);
- _UIF = UIE ? UDE[i] : _UIF; (_UTF) && (_UGE["PF"]["OB"] = _UDTD);
- $$("div", { "className": "UD_MPRRROXOL UTDF", "innerHTML": _UL + 1 + i }, _UDTD);
- _UDSD = $$("div", { "className": "UD_MPRRROXOZ" }, _UDTD);
- $$("img", { "onerror": U.MD.C.imgError, "title": _UIF.UserNickName, "onclick": function(){U.MD.U.V.ViewOtherUserInfo(_UIF.UserId);}, "src": U.MD.C.getHeadImage(_UIF.UserThumbnailImageHead) }, _UDSD);
- $$("div", { "className": "UD_MPRRROXON UTDF", "innerHTML": UDE[i].UserFilesName || UDE[i].UserallDirectoryName }, _UDTD);
- $$("div", { "className": "UD_MPRRROXOR UTDF", "innerHTML": "00:00" }, _UDTD);
- }
- UDOD.appendChild(_UDFD);
- }
- //聚焦当前播放随机还是我的
- U.UF.MPlayer.JJYYSJ = function (UIE) {
- var i, _UDAD = U.selectEl("#UD_MP.UD_MPRRR").childs();
- for (i = 0; i < 2; i++) { _UDAD[i == UIE ? "addClass" : "removeClass"]("UD_MPRRRLO", i); }
- }
- //#endregion
- //Array函数
- {
- reduce: Array.prototype.reduce || function (cb, UTI) {
- var i = 0, _UL = this.length >> 0; (UTI == null) && (i = 1, UTI = this[0]);
- while (i++ < _UL) { UTI = cb(UTI, this[i], i, this); } return UTI;
- },
- reduceRight: Array.prototype.reduceRight || function (cb, UTI) {
- var _UL = this.length >> 0; (UTI == null) && (_UL -= 1, UTI = this[this.length - 1]);
- while (_UL-- > -1) { UTI = cb(UTI, this[i], i, this); }
- },
- includes: Array.prototype.includes || function (UVE, US) { //搜索值是否存在
- var _UDE = Object(this), _UL = _UDE.length >> 0; US = US || US < 0 ? _UL + US : US; (US < 0) && (US = 0);
- for (; US < _UL; US++) { if (_UDE[US] === UVE && (UVE !== UVE && _UDE[US] !== _UDE[US])) { return true; } } return false;
- }
- }
- // ---------------------添加对象操作-----------------------------
- //javascript 1.85兼容
- U.UF.C.AddObj(Object, {
- keys: Object.keys || function (UDE) { //返回函数的值
- var _USE = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"], _UTF = ({ toString: null }).propertyIsEnumerable("toString"); //判断自定义属性和基础属性冲突是否可列举
- var i, _UGE = [], _UFT = U.UF.Ut.isForObj(UDE) || U.UF.C.isString(UDE);
- if (_UFT) {
- if (_UFT === true || _UFT == "Array") { for (i = 0; i < UDE.length; i++) { _UGE.push(i); } }
- else { for (i in UDE) { (UDE.hasOwnProperty(i)) && (_UGE.push(i)); } }
- if (_UTF) { for (i = 0; i < _USE.length; i++) { (UDE.hasOwnProperty(_USE[i])) && (_UGE.push(_USE[i])); } }
- return _UGE;
- }
- else { throw new TypeError(UDE + " is not an object"); } //错误 不为object
- },
- assign: Object.assign || function (UGE) {//合并
- var j, _UTP, _UME, _UKE, i = 1, _UDE = arguments, _UCE = Object(UGE);
- if (!_UCE) { throw new Error("can't convert null to object"); } //参数无效
- if (U.UF.C.isString(UGE)) { _UCE = {}; i = 0; } //第一个参数为string
- try {
- for (; i < _UDE.length; i++) {
- if (_UDE[i] != null) {//getOwnPropertyDescriptor
- _UKE = Object.keys((_UME = Object(_UDE[i]))); //获取可枚举的属性
- for (j = 0; j < _UKE.length; j++) { _UCE[_UKE[j]] = _UME[_UKE[j]]; } //这里不区分自读
- }
- }
- } catch (e) { }
- return _UCE;
- },
- create: Object.create || function () {//创建一个新对象
- var _ = function () { }
- //设置
- return function (UDE) {
- var _USE, _UGE, _UCE = arguments;
- if (U.UF.C.isObject(UDE)) { throw new Error(UDE + " is not an object or null"); } //不为对象
- _.prototype = UDE; _USE = new _(); _.prototype = null;
- if (_UCE[1]) { _UGE = Object(_UCE[1]); for (i in _UGE) { if (_UGE.hasOwnProperty(i)) { if (Object.defineProperty && _UGE && (_UGE.value !== undefined || U.UF.C.isFunction(_UGE.get))) { Object.defineProperty(_USE, i, _UGE); } else { _USE[i] = _UGE[i]; } } } }
- return _USE;
- }
- },
- defineProperties: Object.defineProperties || function (UDE, UGE) { //对象多个设置
- if (Object.defineProperty) {
- if (!U.UF.Ut.isForObj(UDE) || !U.UF.Ut.isForObj(UGE)) { throw new Error("Object.defineProperties requires more than 0 arguments"); } //error
- else {
- for (var i in UGE) {
- if (UGE.hasOwnProperty(i)) {
- if (U.UF.Ut.isForObj(UGE[i])) { Object.defineProperty(UDE, i, UGE[i]); }
- else { throw new Error("value is not a non-null object"); }
- }
- }
- }
- }
- else { throw new Error("Browser version is too low"); }
- },
- getOwnPropertySymbols: Object.getOwnPropertySymbols || function (UDE) { //获取Symbols
- var i, _USE = [];
- for (i in UDE) { (UDE.hasOwnProperty(i) && (U.UF.C.isSymbol(UDE[i])) && _USE.push(UDE[i])); }
- return _USE;
- },
- getPrototypeOf: Object.getPrototypeOf || function (UDE) {//判断原型是否是指定的
- if (U.UF.C.isFunction(UDE)) { return UDE.prototype; }
- else { throw new Error(UDE + " is not an object"); }
- },
- is: Object.create || function (x, y) {//判断是否相等
- if (x === y) { return x !== 0 || 1 / x === 1 / y; } //-0 !=0
- else { return U.UF.Ut.isNaN(x) && U.UF.Ut.isNaN(y); } //NaN == NaN
- },
- setPrototypeOf: Object.setPrototypeOf || function (UDE, UGE) {//设置源
- if (UDE.__proto__) {
- if (!U.UF.C.isObject(UDE)) { throw new Error(UDE + " is not an object"); }
- else if (!U.UF.C.isObject(UDE)) { throw new Error("Object.preventExtensions requires more than 0 arguments"); }
- UDE.__proto__ = UGE;
- }
- else { throw new Error("Browser version is too low"); }
- },
- observe: Object.observe || function () {
- }
- });
- /*----------------------------------------------------------------未使用的ES6规范中的一些函数--------------------------------------------------------------------*/
- // ES6 规范中的新数据类型Symbol的 使用,如果没有Symbol数据类型,则让Symbol支持其它浏览器
- if (!window.Symbol) {
- window.Symbol = function (UK) {
- var symbol = function (UK) { this.keyvalue = UK || Guid().newGuid(); };
- U.UF.C.AddObj(symbol, _UME = {
- iterator: function () { },
- match: function () { },
- replace: function () { },
- search: function () { },
- split: function () { },
- hasInstance: function () { },
- isConcatSpreadable: function () { },
- unscopables: function () { },
- species: function () { },
- toPrimitive: function () { },
- toStringTag: function () { },
- "for": function () { },
- keyFor: function () { }
- });
- U.UF.EV.addPrototype(symbol, {
- toString: function () { return this.keyvalue; }
- });
- return new symbol(UK);
- }
- }
- // es6 Generator 迭代器
- window.Generator = function () { }
- window.Generator.prototype = {
- next: function () { },
- close: function () { },
- send: function () { },
- "throw": function () { }
- }
- //#region Promise 方法 异步式同步
- window.Promise = window.Promise || function () { //resolved rejected
- var that, _ = function (fun) { if (this.constructor == Promise) { return Promise.call(this, fun); } else { return new Promise(fun); } }, Promise = function (fun) { var _that = Asyn({ OBJ: this }); fun.call(this, U.UF.C.apply(_that, _that.reject), U.UF.C.apply(_that, _that.resolve)); return this; },
- Asyn = (function () { //异步处理
- var __, _ = function (UDE) { new __.init(UDE); };
- __ = _.prototype = {
- init: function (UDE) {
- U.selectEl(this).Add(UDE);
- },
- reject: function () { },
- resolve: function () { }
- }
- __.init.prototype = _; return _;
- })();
- // this.success = []; this.error = []; this.state = "pending"; that = this;
- U.UF.C.AddObj(_, {
- reject: function (UDE) { //异步失败处理
- var i, _UDE = this.error;
- if (U.UF.C.isObject(UDE)) { for (var i = 0; i < _UDE.length; i++) { _UDE[i](UDE); } }
- else { }
- },
- resolve: function (UDE) { //异步条件成功
- if (U.UF.C.isObject(UDE)) { }
- else { for (var i = 0; i < this.success.length; i++) { this.success[i](UDE); } }
- },
- join: function () { //处理多个分离的 Promise
- },
- props: function () { //处理一个 promise 的 map 集合
- },
- all: function () { //迭代查看
- },
- race: function (UDE) { //迭代执行
- },
- any: function () {
- },
- some: function () {
- }
- });
- Promise.prototype = {
- constructor: Promise, length: 1,
- then: function (cb, UEB) { //添加异步条件
- var _UCE, _USE = this.state;
- if (_USE == "pending") { //初始化
- (U.UF.C.isFunction(cb)) && (this.success.push(cb));
- (U.UF.C.isFunction(cb)) && (this.error.push(cb));
- }
- else { //已经初始化直接回调
- _UCE = _USE == "resolved" ? cb : UEB;
- if (U.UF.C.isFunction(_UCE)) { try { _UCE(this.value); } catch (e) { this.reject(e); } }
- else { (this[_UCE.substr(-1)] || this[_UCE.substr(-2)])(cb); }
- }
- return _();
- },
- "catch": function () { //执行的错误处理
- }
- };
- return _;
- };
- ////ES6规范定义了一个全新的全局构造函数:代理(Proxy),使用范围很小。
- window.Proxies = window.Proxies || function (URE, UPE, UVE) {
- var Proxies = function (URE, UPE, UVE) { this.init(URE, UPE, UVE) };
- U.UF.C.AddObj(Proxies, {
- init: function (URE, UPE, UVE) { //初始化值
- U.UF.C.AddObj(URE, { obj: URE, cb: UPE, value: { c: URE} });
- },
- bind: function () { //绑定变化
- },
- get: function () { //get的变化回调
- },
- set: function () { //set变化回调
- }
- });
- if (this.constructor == Proxies) { return Proxies.call(this, URE, UPE, UVE); }
- else { return new Proxies(URE, UPE, UVE); }
- }
- // 新类型使用
- window.Map = window.Map || function () {
- }
- window.Set = window.Set || function () {
- }
- window.WeakMap = window.WeakMap || function () {
- }
- window.WeakSet = window.WeakSet || function () {
- }
- window.Symbol = window.Symbol || function () {
- var symbol = function (UK) { this.keyvalue = UK || Guid().newGuid(); };
- U.UF.C.AddObj(symbol, {
- iterator: function () { },
- match: function () { },
- replace: function () { },
- search: function () { },
- split: function () { },
- hasInstance: function () { },
- isConcatSpreadable: function () { },
- unscopables: function () { },
- species: function () { },
- toPrimitive: function () { },
- toStringTag: function () { },
- "for": function () { },
- keyFor: function () { }
- });
- //添加方法
- U.UF.EV.addPrototype(symbol, {
- toString: function () { return this.keyvalue; }
- });
- return new symbol(UK);
- }
- window.TypeError = function () { }
- U.UF.C.Number.EPSILON = Number.EPSILON || 2.220446049250313e-16;
- U.UF.C.Number.MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;
- U.UF.C.Number.MAX_VALUE = Number.MAX_VALUE || 1.79e+308;
- U.UF.C.Number.POSITIVE_INFINITY = Number.POSITIVE_INFINITY || Infinity;
- U.UF.C.Number.NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY || Infinity;
- U.UF.C.Number.isFinite = Number.isFinite || function (value) {//如果 number 是有限数字(或可转换为有限数字),那么返回 true。否则,如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。
- return U.UF.C.isNumber(value) && isFinite(value);
- };
- U.UF.C.Number.isSafeInteger = Number.isSafeInteger || function (value) {//方法用来判断传入的参数值是否是一个"安全整数"
- return U.UF.C.isNumber(value) && isFinite(value);
- };
- U.UF.C.Number.isNaN = Number.isNaN || function (value) {//判断是否是NaN
- return U.UF.C.isNumber(value) && isNaN(value);
- };
- U.UF.C.Number.isInteger = Number.isInteger || function (value) {//确定传入的值是否是一个整数。
- return U.UF.C.isNumber(value) && isFinite(value) && Math.floor(value) === value;
- };
- U.UF.C.Number.parseFloat = Number.parseFloat || function (value) {//转换值为浮点型
- return parseFloat(value)
- };
- U.UF.C.Number.parseInt = Number.parseInt || function (value) {//转换值为整型
- return parseInt(value);
- };
- // from: Array.from || function () { //对象转化成数组类型
- // var i, _UL, _URE, _UVE, _UTE = this, _UDE = arguments, _UIE = _UDE[0];
- // if (_UIE) {
- // if (_UDE.length < 2 || (_UDE.length > 1 && U.UF.C.isFunction(_UDE[1]))) { //
- // _UIE = Object(_UIE); _UL = U.UF.C.toInteger(_UIE.length); //转化成对象
- // _URE = U.UF.C.isFunction(_UTE) ? Object(new _UTE(_UL)) : new Array(_UL); _URE.length = _UL; //新建值
- // for (i = 0; i < _UL; i++) { _UVE = _UIE[i]; _URE[i] = _UDE[1] ? _UDE[1].call(_UDE[2], _UVE, i) : _UVE; }
- // return _URE;
- // }
- // else { throw new TypeError("Array.from: when provided, the second argument must be a function"); } //非回调函数
- // }
- // else { throw new TypeError("Array.from requires an array-like object - not null or undefined"); } //参数问题
- // },
- // observe: Array.observe || function () {
- // },
- // of: Array.of || function () { //arguments 转化成对象
- // return Array.prototype.slice.call(arguments);
- // },
- // MAX_ARRAY_INDEX: 9007199254740991 //最大循环次数
- /*----------------------------------------------------------------未使用的ES6规范中的一些函数--------------------------------------------------------------------*/
- // ES6 规范中的新数据类型Symbol的 使用,如果没有Symbol数据类型,则让Symbol支持其它浏览器
- if (!window.Symbol) {
- window.Symbol = function (UK) {
- var symbol = function (UK) { this.keyvalue = UK || Guid().newGuid(); };
- U.UF.C.AddObj(symbol, _UME = {
- iterator: function () { },
- match: function () { },
- replace: function () { },
- search: function () { },
- split: function () { },
- hasInstance: function () { },
- isConcatSpreadable: function () { },
- unscopables: function () { },
- species: function () { },
- toPrimitive: function () { },
- toStringTag: function () { },
- "for": function () { },
- keyFor: function () { }
- });
- U.UF.EV.addPrototype(symbol, {
- toString: function () { return this.keyvalue; }
- });
- return new symbol(UK);
- }
- }
- // es6 Generator 迭代器
- window.Generator = function () { }
- window.Generator.prototype = {
- next: function () { },
- close: function () { },
- send: function () { },
- "throw": function () { }
- }
- //#region Promise 方法 异步式同步
- window.Promise = window.Promise || function () { //resolved rejected
- var that, _ = function (fun) { if (this.constructor == Promise) { return Promise.call(this, fun); } else { return new Promise(fun); } }, Promise = function (fun) { var _that = Asyn({ OBJ: this }); fun.call(this, U.UF.C.apply(_that, _that.reject), U.UF.C.apply(_that, _that.resolve)); return this; },
- Asyn = (function () { //异步处理
- var __, _ = function (UDE) { new __.init(UDE); };
- __ = _.prototype = {
- init: function (UDE) {
- U.selectEl(this).Add(UDE);
- },
- reject: function () { },
- resolve: function () { }
- }
- __.init.prototype = _; return _;
- })();
- // this.success = []; this.error = []; this.state = "pending"; that = this;
- U.UF.C.AddObj(_, {
- reject: function (UDE) { //异步失败处理
- var i, _UDE = this.error;
- if (U.UF.C.isObject(UDE)) { for (var i = 0; i < _UDE.length; i++) { _UDE[i](UDE); } }
- else { }
- },
- resolve: function (UDE) { //异步条件成功
- if (U.UF.C.isObject(UDE)) { }
- else { for (var i = 0; i < this.success.length; i++) { this.success[i](UDE); } }
- },
- join: function () { //处理多个分离的 Promise
- },
- props: function () { //处理一个 promise 的 map 集合
- },
- all: function () { //迭代查看
- },
- race: function (UDE) { //迭代执行
- },
- any: function () {
- },
- some: function () {
- }
- });
- Promise.prototype = {
- constructor: Promise, length: 1,
- then: function (cb, UEB) { //添加异步条件
- var _UCE, _USE = this.state;
- if (_USE == "pending") { //初始化
- (U.UF.C.isFunction(cb)) && (this.success.push(cb));
- (U.UF.C.isFunction(cb)) && (this.error.push(cb));
- }
- else { //已经初始化直接回调
- _UCE = _USE == "resolved" ? cb : UEB;
- if (U.UF.C.isFunction(_UCE)) { try { _UCE(this.value); } catch (e) { this.reject(e); } }
- else { (this[_UCE.substr(-1)] || this[_UCE.substr(-2)])(cb); }
- }
- return _();
- },
- "catch": function () { //执行的错误处理
- }
- };
- return _;
- };
- ////ES6规范定义了一个全新的全局构造函数:代理(Proxy),使用范围很小。
- window.Proxies = window.Proxies || function (URE, UPE, UVE) {
- var Proxies = function (URE, UPE, UVE) { this.init(URE, UPE, UVE) };
- U.UF.C.AddObj(Proxies, {
- init: function (URE, UPE, UVE) { //初始化值
- U.UF.C.AddObj(URE, { obj: URE, cb: UPE, value: { c: URE} });
- },
- bind: function () { //绑定变化
- },
- get: function () { //get的变化回调
- },
- set: function () { //set变化回调
- }
- });
- if (this.constructor == Proxies) { return Proxies.call(this, URE, UPE, UVE); }
- else { return new Proxies(URE, UPE, UVE); }
- }
- // 新类型使用
- window.Map = window.Map || function () {
- }
- window.Set = window.Set || function () {
- }
- window.WeakMap = window.WeakMap || function () {
- }
- window.WeakSet = window.WeakSet || function () {
- }
- ////判断是否为url
- //U.UF.S.url = function (UDE, UTF) {
- // var _USE;
- // switch (UTF) {
- // case "stringify": //转化成url字符串
- // _USE = "";
- // if (U.UF.C.isObject(UDE)) {
- // _$.forEach(UDE,function (UA, UB) {
- // (_USE) && (_USE); _USE += UB + "=" + UA;
- // })
- // }
- // break;
- // case "parse": //url转化成对象
- // if (U.UF.C.isString(UDE)) {
- // }
- // break;
- // }
- // return _USE;
- //}
- /**
- * 弹出添加窗体
- *
- * @param {object} 添加进入的元素
- * @param {function} 添加的用户信息
- * @return {element} 选择联系人窗体
- */
- U.MD.F.J.ANewFrom = function (UDE, cb) {
- var _UDOD = U.selectEl("#UD_SYT").clone(true)[0], //选择联系人元素
- _UDAD = U.selectEl("div", _UDOD).addAttrArray({ id: "" });
- (cb) && (_UDAD[_UDAD.length - 1].onclick = cb);
- (UDE) && (U.MD.F.J.printSelectFriend($(_UDOD).Child()[1], UDE)); //选择联系窗体内容输出
- new U.UF.UI.form("添加好友",
- _UDOD,
- {
- "resize": function(){U.MD.I.ImgSize(_UDOD, _UFID);},
- "id": "US_F_" + Guid.guidNoDash(),
- "style": {
- "display": "250px",
- "height": "490px"
- }
- },
- {
- isenlarge: false,
- isnarrow: false
- }).form;
- // new U.UF.UI.form({ min: false, max: false, id: "US_F_" + Guid.guidNoDash(), //创建弹出选择联系人窗体
- // style: { width: "250px", height: "490px" }, content: _UDOD, title: "添加好友",
- // hst: { style: { "padding": "0"} }
- // });
-
- U.selectEl(_UDOD).css("display", "block");
- return _UDOD; //创建窗体
- }
- //直接触发加载1473
- U.UF.CD.ULOF = function (cb) {
- U.selectEl().ready(function(){U.UF.CD.loadPageCrossDomain(null, cb);});
- }
- //打印方式
- U.UF.CD.print = function () {
- var _ = function () { }
- }
- /*----------------------------------------暂时未使用的函数,手机端也没使用----------------------------------------------*/
- //客户端摄像功能,电脑端,手机端均可运行。
- U.UF.CI.photo = function () {
- var _UJE, _ = function (UDOD, UDE) { new _.get.init(UDOD, UDE); }
- _UJE = _.get = {
- init: function (UDOD, UDE) { //初始化
- var i, _UAE = ["getUserMedia", "webkitGetUserMedia", "mozGetUserMedia", "msGetUserMedia"];
- for (i = 0; i < _UAE.length; i++) { if (navigator[_UAE[i]]) { navigator[_UAE[i]]({ video: true, audio: true }, function(){this.Asyn();}, this.err); break; } } //初始化
- U.UF.C.AddObj(this, { UDPD: UDOD || document.body, UIE: i, UAE: UDE });
- },
- Asyn: function (USE) { //回调异步
- this.se = USE; this.vi = U.MD.V.vi({ autoplay: "true" }, this.UDPD).create((window.URL || window.webkitURL) ? (window.URL || window.webkitURL).createObjectURL(USE) : USE); //创建视频显示 window[(this.UIE == 1 ? "webkitURL" : "URL")]
- (this.UAE) && ($(this.vi.vi).addAttrArray(this.UAE)); this.cv = U.CV.canvas(null, this.UDPD, { "style": { "width": "auto", "height": "100%", "visibility": "hidden"} }); //创建使用
- },
- err: function (UE) { //错误处理
- var _UTH = "系统未能获取到摄像头,请确保摄像头已正确安装。或尝试刷新页面,重试";
- if (UE.PERMISSION_DENIED || (UE.name == "PermissionDeniedError")) { _UTH = "用户拒绝了浏览器请求媒体的权限"; }
- else if (UE.NOT_SUPPORTED_ERROR || (UE.name == "NotSupportedError")) { _UTH = "对不起,您的浏览器不支持拍照功能,请使用其他浏览器"; }
- else if (UE.MANDATORY_UNSATISFIED_ERROR || (UE.name == "MandatoryUnsatisfiedError")) { _UTH = "指定的媒体类型未接收到媒体流"; }
- U.Alert(_UTH);
- },
- img: function (UTF) { //截图
- var _UAE = Array.prototype.concat(arguments); _UAE.unshift(this.vi.vi); this.cv.dimg.apply(this, _UAE); //生成截图
- return this.cv.toImg(UTF);
- },
- stop: function () { //停止录像和播放
- this.se.stop(); this.vi.play(false); //停止播放
- },
- camera: function () { //录像生成获取
- var _ = function () {
- }
- _.prototype = {
- init: function () { //初始化
- },
- time: function () { //定时监视
- },
- url: function () { //生成数据
- }
- }
- return _;
- },
- Rtc: function () { //视频共享
- },
- get: function () { }, set: function () { }
- }
- _UJE.init.prototype = _UJE; return _;
- } ()
- //获取客户端位置
- U.UF.CI.getPosition = function () {
- var _URL = 6371, _UDE, _ = function (cb, UDE) { //获取客户端地址信息
- if (navigator.geolocation) { return new _UDE.init(cb, UDE); }
- else { throw new Error("the fucntion in html"); }
- },
- cb = function (cb) { //获取信息回调
- //latitude 纬度 longitude 经度 accuracy 准确度 altitude 海拔高度 altitudeAccuracy 海拔高度准确度 heading 行进方向 speed 速度
- var _UDE = event; this.UT = this[this.UST ? "UET" : UST] = _UDE; (cb) && (cb(_UDE)); //回调函数
- },
- ecb = function () { //错误处理
- var UE = event, _UCE = ["尝试获取您的位置信息时发生错误:" + UE.message, "用户拒绝了获取位置信息请求。", "浏览器无法获取您的位置信息。", "获取您位置信息超时。"];
- ((this.UDE.error || this.cb)(UE, _UCE[UE.code]) == "restart") && (this.get()); //重启动获取
- }
- U.UF.C.AddObj(_, _.prototype = _UDE = {
- init: function (cb, UDE) { //初始化
- U.UF.C.AddObj(this, { UST: null, UET: null, UT: null, id: null, UNE: navigator.geolocation, cb: cb, UDE: UDE, UOE: UDE.op || { enableHighAccuracy: true, timeout: 5000, maximumAge: 0} }); //使用enableHighAccuracy启用gps timeout请求超时 maximumAge缓存数据Infinity
- },
- exec: function (UTP) { //执行制定的函数
- if (UTP) {
- var _UNE = this.UNE, _UCB = function(){cb(this.cb);};
- _UNE[UTP](_UCB, _UCB, this.UOE); //获取地理位置
- }
- },
- get: function () { //获取gps定位
- this.exec("getCurrentPosition");
- },
- watch: function () { //GPS实时定位
- (!this.id) && (this.UST = null, this.exec("watchPosition")); //启用事实导航
- },
- clear: function () { //关闭实时定位
- (this.id) && (this.UNE.clearWatch(this.id), this.id = null);
- },
- haversine: function (UO, UT, UOS, UTS) { //相隔距离
- var _UA, _UOM = UOS.toRadians(), _UTM = UTS.toRadians(), _ULO = (UTS - UOS).toRadians(), _UOT = (UT - UO).toRadians(); //相距弧长
- _UA = Math.sin(_ULO / 2) * Math.sin(_ULO / 2) + Math.cos(UOS) * Math.cos(UTS) * Math.sin(_UOT / 2) * Math.sin(_UOT / 2);
- return _URL * 2 * Math.atan2(Math.sqrt(_UA), Math.sqrt(1 - _UA));
- }
- });
- _UDE.init.prototype = _UDE; return _;
- };
- //#region 支付宝接口
- //使用支付宝支付
- U.UF.DL.C.AD.Alipay = function (UDE, UTF) {
- if (UTF) { window.open("http://alp.1473.cn?"); }
- }
- //#endregion
- //#region 微信支付接口
- //使用微信支付
- U.UF.DL.C.AD.weixin = function (USID, userid, USL, UTF) {
- if (UTF) { window.open(); }
- }
- //#endregion
- //#region canvas绘图 在线ps
- //canvas接口
- U.CV.canvas = function (UDOD, UDPD, UDE) {
- return new this.Cinit(UDOD, UDPD, UDE);
- }
- //创建canvas
- U.CV.Cinit = function (UDOD, UDPD, UDE) {
- this.UDCD; this.UCE; this.UDCD = UDOD; (!UDOD && UDPD) && (this.create(UDPD, UDE));
- }
- U.UF.EV.addPrototype(U.CV.Cinit, {
- create: function (UDOD, UDE) { //创建canvas对象
- this.UDCD = $$("canvas", UDE, UDOD); //创建canvas
- this.UCE = this.UDCD.getContext("2d");
- return this;
- },
- oimg: function () { //加载图片成功
- var _UTF = event.type == "error", _UDE = Array.prototype.slice.call(arguments);
- if (_UTF) { U.Alert("加载图片错误!"); } else { this.dimg.apply(this, _UDE); }
- },
- dimg: function (UIMG, UX, UY, UW, UH, UDX, UDY, UDW, UDH) { //canvas展示图像
- var _UCE = this.UCE, _UDE = Array.prototype.slice.call(arguments), _UME = _UDE.slice(1), _UFE = U.UF.C.apply(this, [[this.oimg, _UME]]); _UDE[1] = _UDE[1] || 0; _UDE[2] = _UDE[2] || 0;
- if (typeof UIMG == "string") { _UME.unshift(new Image()); U.selectEl(_UME[0]).addAttrArray({ "src": UIMG, "onload": _UFE, "onerror": _UFE })[0]; } //生成图片
- else { if (UIMG.complete || UIMG.complete == null) { _UCE.drawImage.apply(_UCE, _UDE); } else { UIMG.onload = _UFE; } } //执行图片展示
- return this;
- },
- bp: function () { //重置当前路径
- this.UCE.beginPath(); //重新启动路径
- },
- cp: function () { this.UCE.closePath(); }, //路径重回启动
- set: function (UDE) { //设置绘图
- var i, _UCE = this.UCE; _UCE.beginPath(); //开始设置
- if (UDE) { for (i in UDE) { if (typeof UDE[i] == "string") { _UCE[i] = UDE[i]; } else { _UCE[i].apply(_UCE, UDE[i]); } } } //设置值
- _UCE.closePath(); return this; //结束设置
- },
- fill: function (UST) { //有色填充
- var _UCE = this.UCE; if (U.UF.C.isString(UST)) { _UCE.fillStyle = UST; } else { _$.Each(UST,function (UVE, UIE) { _UCE[UIE] = UVE; }); } _UCE.fill(); return this; // _UCE.closePath();
- },
- stroke: function (UST) { //边框填充
- var _UCE = this.UCE; if (U.UF.C.isString(UST)) { _UCE.strokeStyle = UST; } else { _$.Each(UST,function (UVE, UIE) { _UCE[UIE] = UVE; }); } _UCE.stroke(); return this; //_UCE.closePath();
- },
- sLine: function (USE, UDE) { //画线设置
- var i, _UCE = this.UCE; if (USE) { this.bp(); _UCE.moveTo(USE[0], USE[1]); } //开始设置
- if (UDE) { for (i = 0; i < UDE.length; i++) { _UCE.lineTo(UDE[i][0], UDE[i][1]); } } return this; //设置线条每个点 //结束设置
- },
- bezier: function () { //设置贝尔画线 2次和3次
- var i, _UAE = arguments, _UCE = this.UCE; _UAE.length == 4 ? _UCE.quadraticCurveTo(_UAE[0], _UAE[1], _UAE[2], _UAE[3]) : _UCE.bezierCurveTo(_UAE[0], _UAE[1], _UAE[2], _UAE[3], _UAE[4], _UAE[5]);
- return this;
- },
- fillR: function (UX, UY, UW, UH, UST) { //有色矩形绘制
- UW = UW || 100; UH = UH || 100; var i, _UCE = this.UCE; (UST) && (_UCE.fillStyle = UST);
- _UCE.fillRect(UX || 0, UY || 0, UW || 100, UH || 100); return this; //生成矩形
- },
- strokeR: function (UX, UY, UW, UH, UST) {//无色矩形 实际就是边框
- var i, _UCE = this.UCE; (UST) && (_UCE.strokeStyle = UST);
- this.UCE.strokeRect(UX || 0, UY || 0, UW || 100, UH || 100); return this; //生成矩形
- },
- rect: function (UX, UY, UW, UH) { //创建画布
- this.UCE.rect(UX || 0, UY || 0, UW || 100, UH || 100);
- },
- clear: function (UX, UY, UW, UH) { //清除矩形
- this.UCE.clearRect(UX || 0, UY || 0, UW || this.UDCD.offsetWidth, UH || this.UDCD.offsetHeight); //清理矩形
- return this;
- },
- shadow: function (UDE, UVE) { //阴影
- if (U.UF.C.isObject(UDE)) { var _UCE = this.UCE; _$.Each(UDE,function (UVE, UIE) { _UCE["shadow" + UIE] ? _UCE["shadow" + UIE] = UVE : _UCE[UIE] = UVE; }); }
- else { _UCE["shadow" + UDE] ? _UCE["shadow" + UDE] = UVE : _UCE[UDE] = UVE; }
- },
- cap: function (UTF) { //边缘设置
- this.UCE.lineCap = { b: "butt", r: "round", s: "square"}[UTF] || UTF || "butt";
- },
- join: function (UTF) { //join夹角连接样式
- this.UCE.lineJoin = { b: "miter", "r": "round", "m": "miter"}[UTF] || UTF || "miter";
- },
- arc: function (UX, UY, UL, US, UE, UTF, UDE) { //画圆
- this.set({ "arc": [UX, UY, UL, US, UE, UTF] }); //设置圆
- (UDE) && (this.set(UDE)); return this;
- },
- arcTo: function (USE, UDE) { //创建弧
- if (Array.isArray(UDE)) { this.sLine(UDE[0], UDE.slice(1)); } //创建线
- if (USE) { this.arcTo(USE); } //创建弧
- },
- linearc: function (USE, UME, UBE) { //设置渐变 xStart,yStart,xEnd,yEnd
- var i, _UCE = this.UCE, _UGE = _UCE.createLinearGradient.apply(_UCE, USE);
- for (i = 0; i < UME.length; i++) { _UGE.addColorStop.apply(UME[i][0], UME[i][1]); } //设置渐变
- if (UBE) { for (i = 0; i < UBE.length; i++) { this[UBE[i]](_UGE); } }
- },
- radialc: function (USE, UDE) {//径向渐变 xStart,yStart,radiusStart,xEnd,yEnd,radiusEnd
- var i, _UCE = this.UCE, _UGE = _UCE.createRadialGradient.apply(_UCE, USE); //创建变化
- for (i = 0; i < UDE.length; i++) { _UGE.addColorStop(UDE[i][0], UDE[i][1]); } //添加渐变属性
- },
- tform: function (UOM, UTM, USM, UFM, UX, UY) { //矩阵变换 scaleX,skewX,skewY,scaleY,transX,transY
- this.UCE.transform(UOM, UTM, USM, UFM, UX, UY);
- },
- stform: function (UOM, UTM, USM, UFM, UX, UY) { //重置矩阵
- this.UCE.setTransform(UOM, UTM, USM, UFM, UX, UY);
- },
- tslate: function (UX, UY) {//平移
- this.UCE.translate(UX, UY);
- },
- scale: function (UX, UY) {//缩放
- this.UCE.scale(UX, UY);
- },
- rotate: function (UX) {//旋转
- this.UCE.rotate(UX);
- },
- gcpo: function (UTP) { //图像组合
- var i, _UCE = this.UCE, _USP = "", _UME = { s: "source", d: "destination", ou: "out", ov: "over", a: "atop", i: "in", "l": "lighter", "x": "xor", "cp": "copy" }; UTP = UTP.split(",");
- for (i = 0; i < UTP.length; i++) { (i) && (_USP += "-"); _USP += _UME[UTP[0]]; } _UCE.globalCompositeOperation = _USP; //添加
- },
- shadow: function (UX, UY, UC, USB) { //绘制图像的阴影
- var i, _UCE = this.UCE, _UDE = ["X", "Y", "Color", "Blur"], _USE = arguments;
- for (i = 0; i < _USE; i++) { (_USE[i]) && (_UCE["shadow" + (i < 2 ? "Offset" : "") + _UDE[i]] = _USE[i]); } //设置参数
- },
- pattern: function (UIMG, UTF) {//设置图像平铺
- var _UCE = this.UCE, _UME = { nr: "no-repeat", rx: "repeat-x", ry: "repeat-y", r: "repeat" }; UTF = _UME[UTF] || UTF;
- _UCE.createPattern(UIMG, UTF);
- },
- clip: function (UDE) {
- var _UCE = this.UCE; (UDE) && (this.set(UDE)); _UCE.clip(); //裁剪
- },
- gimgd: function (UX, UY, UW, UH) { //获取图片像素
- try { UX = UX || 0; UY = UY || 0; UW = UW || 1; UH = UH || 1; return (this.da = this.UCE.getImageData(UX, UY, UW, UH)); } catch (e) { alert(e.Message); }
- },
- copy: function (UIE, UX, UY, UDX, UDY, UDW, UDH) { //添加图像像素
- if (UIE) {
- var _UCE = this.UCE, _UDE = Array.prototype.slice.call(arguments); _UDE[1] = _UDE[1] || 0; _UDE[2] = _UDE[2] || 0;
- _UCE.putImageData.apply(_UCE, _UDE);
- }
- },
- tbline: function (UST) { //基线
- this.UCE.textBaseline = UST;
- },
- font: function (UST) { this.UCE.font = UST; },
- fillT: function (UTH, UX, UY, UDE) {//填充字体 font textBaseline textAlign measureText
- var i, _UCE = this.UCE; this.set(UDE); _UCE.fillText(UTH, UX, UY)
- },
- strokeT: function (UTH, UX, UY, UDE) {//绘制文字轮廓
- var _UCE = this.UCE; this.set(UDE); _UCE.strokeText(UTH, UX, UY)
- },
- mtext: function (UTH, UTP) { //获取文字的大小
- var _USE = this.UCE.measureText(UTH); if (UTF) { return _USE[UTP]; } else { return _USE; }
- },
- toImg: function (UTP) {//canvas 转化成图片
- this.UDCD.toDataURL("image/" + (UTP || "jpeg"));
- },
- // sign: function (UDE) {
- // // var _ = function (UDE) { (UDE) && ($(this).Add(UDE)); this.bind(); return this; }; // return new _fun.init(UDE);
- // // _.prototype = {
- // // init: function (UDE) { //初始化
- // // (UDE) && ($(this).Add(UDE)); this.bind(); return this;
- // // },
- // // bind: function () { //事件绑定
- // // if ("ontouchstart" in that.UDCD) { U.selectEl(that.UDCD).bind(this.signfun = { touchstart: function(){this.down();}, touchmove: function(){this.move();}, touchend: function(){this.up();} }); U.selectEl(document.body).bind({ touchend: this.signfun.mouseup }); }
- // // else { U.selectEl(that.UDCD).bind(this.signfun = { mousedown: function(){this.down();}, mousemove: function(){this.move();}, mouseup: function(){this.up();} }); U.selectEl(document.body).bind({ mouseup: this.signfun.mouseup }); } return this;
- // // },
- // // down: function () { //点击初始化
- // // this.d = U.UF.C.GetMousep(that.UDCD); that.sLine[this.d.X, this.d.Y]; that.UDCD.setCapture();
- // // },
- // // move: function () { //移动写字
- // // if (this.d) { var _UAE = U.UF.C.GetMousep(that.UDCD); that.sLine(null, [[_UAE.X, _UAE.Y]]).stroke({ lineWidth: this.width || "1", lineCap: "round", strokeStyle: "black" }); }
- // // },
- // // up: function () { //结束使用
- // // if (this.d) { that.cp(); that.save(); this.d = null; }
- // // },
- // // unbind: function () { U.selectEl(that.UDCD).unbind(this.signfun); U.selectEl(that.UDCD).unbind({ mouseup: this.signfun.mouseup }); that.UDCD.setCapture(); }
- // // };
- // },
- sign: (function () { //签名使用
- var _fun, that, _ = function (UDE) { that = this; return new _fun.init(UDE); }
- _fun = _.prototype = {
- init: function (UDE) { //初始化
- (UDE) && ($(this).Add(UDE)); this.bind(); return this;
- },
- bind: function () { //事件绑定
- if ("ontouchstart" in that.UDCD) { U.selectEl(that.UDCD).bind(this.signfun = { touchstart: function(){this.down();}, touchmove: function(){this.move();}, touchend: function(){this.up();} }); U.selectEl(document.body).bind({ touchend: this.signfun.mouseup }); }
- else { U.selectEl(that.UDCD).bind(this.signfun = { mousedown: function(){this.down();}, mousemove: function(){this.move();}, mouseup: function(){this.up();} }); U.selectEl(document.body).bind({ mouseup: this.signfun.mouseup }); } return this;
- },
- down: function () { //点击初始化
- this.d = U.UF.EL.getMousePosition(that.UDCD); that.sLine[this.d.X, this.d.Y]; that.UDCD.setCapture();
- },
- move: function () { //移动写字
- if (this.d) { var _UAE = U.UF.EL.getMousePosition(that.UDCD); that.sLine(null, [[_UAE.X, _UAE.Y]]).stroke({ lineWidth: this.width || "1", lineCap: "round", strokeStyle: "black" }); }
- },
- up: function () { //结束使用
- if (this.d) { that.cp(); that.save(); this.d = null; }
- },
- unbind: function () { U.selectEl(that.UDCD).unbind(this.signfun); U.selectEl(that.UDCD).unbind({ mouseup: this.signfun.mouseup }); that.UDCD.setCapture(); }
- };
- _fun.init.prototype = _fun; return _;
- })(),
- Pattern: function (UIMG, UTF) { //convas图片变化使用
- (U.UF.C.apply(UIMG)) && (UIMG = U.selectEl(UIMG)[0]);
- this.UDCD.createPattern(UIMG, UTF == "no" ? "no-repeat" : "repepixelspixelsat" + (UTF ? "-" : "") + UTF); return this;
- },
- isP: function (UX, UY) { //判断点是否在改范围
- return this.isPointInPath(UX, UY)
- },
- cimgd: function (UW, UH, UTF) { var _UCE = (this.cd = this.UCE.createImageData(UW || this.UCE.width, UH)); return (UTF ? UTF[UTF] : _UCE) }, //获取像素点的值
- width: function (UDE) { //获取长度
- var _UAE = (UDE || this.cd); return _UAE ? _UAE.width : null;
- },
- height: function () { //获取宽度
- var _UAE = (UDE || this.cd); return _UAE ? _UAE.height : null;
- },
- data: function (UDE) { //获取date
- var _UAE = (UDE || this.cd); return _UAE ? _UAE.data : null;
- },
- alpha: function () { //设置透明度
- this.UCE.globalAlpha = "0.2";
- },
- compo: function (UTP) {//图像的层次问题
- this.UCE.globalCompositeOperation = { so: "source-over", sa: "source-atop", si: "source-in", sot: "source-out", "do": "destination-over", da: "destination-atop", di: "destination-in", dot: "destination-out", lt: "lighter", cp: "copy", so: "source-over"}[UTP] || UTP || "source-over";
- },
- save: function () { //保存当前设置
- this.UCE.save(); //保存当前设置
- },
- restore: function () {//撤退前面一个保存的值
- this.UCE.restore();
- },
- grayscale: function (UBE) {//灰度效果
- var i, _UDE = this.cd || this.cimgd(), _UCE = _UDE.data;
- for (i = 0; i < _UCE.length; i += 4) { _UCE[i] = _UCE[i + 1] = _UCE[i + 2] = (_UCE[i] + _UCE[i + 1] + _UCE[i + 2]) / (UBE / 10); }
- return _UDE;
- },
- sepia: function () {//复古效果
- var i, _UR, _UG, _UB, _UDE = this.cd || this.cimgd(), _UCE = _UDE.data;
- for (i = 0; i < _UCE.length; i += 4) {
- _UR = d[i]; _UG = d[i + 1]; _UB = d[i + 2];
- _UCE[i] = (_UR * 0.393) + (_UG * 0.769) + (_UB * 0.189);
- _UCE[i + 1] = (_UR * 0.349) + (_UG * 0.686) + (_UB * 0.168);
- _UCE[i + 2] = (_UR * 0.272) + (_UG * 0.534) + (_UB * 0.131);
- }
- return _UDE;
- },
- red: function () {//红色蒙版效果
- var i, _UR, _UG, _UB, _UDE = this.cd || this.cimgd(), _UCE = _UDE.data;
- for (i = 0; i < _UCE.length; i += 4) {
- _UR = _UCE[i]; _UG = _UCE[i + 1]; _UB = _UCE[i + 2];
- _UCE[i] = (_UR + _UG + _UB) / 3; //设置红色灰度
- _UCE[i + 1] = _UCE[i + 2] = 0; //取消绿蓝
- }
- return _UDE;
- },
- brightness: function (UBE) {//亮度效果
- var i, _UDE = this.cd || this.cimgd(), _UCE = _UDE.data;
- for (i = 0; i < _UCE.length; i += 4) { _UCE[i] += UBE; _UCE[i + 1] += UBE; _UCE[i + 2] += UBE; }
- return _UDE;
- },
- invert: function () {//反转效果
- var i, _UDE = this.cd || this.cimgd(), _UCE = _UDE.data;
- for (i = 0; i < _UCE.length; i += 4) { _UCE[i] = 255 - _UCE[i]; _UCE[i + 1] = 255 - _UCE[i + 1]; _UCE[i + 2] = 255 - _UCE[i + 2]; }
- return _UDE;
- },
- anim: function () { //动画
- },
- ps: function () { //初始化ps工具
- var _ = function () { };
- _.prototype = {
- init: function () {
- }
- }
- return _;
- }
- });
- //#endregion
- //#region svg和vml 绘图
- //vml绘图工具
- U.CV.vml = function () {
- var _UME, _ = function (UDE, UTF) { return new _UME.init(UTF); }
- _UME = _.prototype = {
- init: function (UTF) { //初始化绘图工具
- U.UF.C.AddObj(this, { ob: null, ca: null, tf: UTF });
- },
- creare: function (UDE, UPE) {
- U.UF.DL.LoadStyle("v\:* { behavior: url(#default#VML); }"); //创建vml引用
- this.ob = UPE; return this;
- },
- exec: function (UTP, UDE, UPE) { //执行统一创建
- var i, _USE = [], _UTF = UDE.length, _UDSD = $$("frag"); UPE = UPE || this.ob; UDE = _UTF ? UDE : [UDE];
- for (i = 0; i < UDE.length; i++) { _USE.push($$(UTP, UDE[i], _UDSD)); } UPE.appendChild(_UDSD); this.ca = _USE; return this;
- },
- line: function (UDE, UPE) { //添加先
- if (this.tf) { UDE = { from: UDE["x1"] + "," + UDE["y1"], to: UDE["x2"] + "," + UDE["y2"], strokeColor: UDE.stroke, "stroke-width": 1 }; } //兼容svg方案
- this.exec("v:line", UDE, UPE);
- },
- polyline: function (UDE, UPE) {
- },
- rect: function (UDE, UPE) {
- },
- circle: function (UDE, UPE) {
- },
- ellipse: function (UDE, UPE) {
- },
- polygon: function (UDE, UPE) {
- },
- path: function (UDE, UPE) {
- }
- }
- }
- //svg矢量图绘制
- U.CV.sv = (function () {
- var _UME, _ = function (UDE) {
- if (U.UF.C.isSupportSvg()) { return new _UME.init(UDE); }
- else { return that.vml(UDE, true); }
- }
- _UME = _.prototype = {
- //绘制图形的方法
- init: function () { //初始化绘图工具
- U.UF.C.AddObj(this, { ob: null, ca: null });
- },
- creare: function (UDE, UPE) { //创建svg
- UDE = UDE || {}; U.UF.C.AddObj(UDE, { "xmlns": "http://www.w3.org/2000/svg", "version": "1.1", "xmlns:xlink": "http://www.w3.org/1999/xlink" });
- this.ob = $$.NS("svg", UDE, UPE || document.body);
- return this;
- },
- exec: function (UTP, UDE, UPE) { //统一执行创建
- var i, _USE = [], _UTF = UDE.length, _UDSD = $$("frag"); UPE = UPE || this.ob; UDE = _UTF ? UDE : [UDE];
- for (i = 0; i < UDE.length; i++) { _USE.push($$.NS(UTP, UDE[i], _UDSD)); }; UPE.appendChild(_UDSD); this.ca = _USE; return this;
- },
- line: function (UDE, UPE) { //线 x1 y1 x2 y2
- this.exec("line", UDE, UPE); return this;
- },
- polyline: function (UDE, UPE) { //多线条 points "0,10"
- this.exec("polyline", UDE, UPE); return this;
- },
- rect: function (UDE, UPE) { //矩形 width height
- this.exec("rect", UDE, UPE); return this;
- },
- circle: function (UDE, UPE) { //圆形 cx cy r
- this.exec("circle", UDE, UPE); return this;
- },
- ellipse: function (UDE, UPE) { //椭圆 cx cy rx ry
- this.exec("ellipse", UDE, UPE); return this;
- },
- polygon: function (UDE, UPE) { //多边形 points "10,10"
- this.exec("polygon", UDE, UPE); return this;
- },
- path: function (UDE, UPE) { //命令创建 d = M 移动到 L 连线到 H水平连线到 V垂直连线到 C曲线连接到 S平滑曲线连接到 Q使用二次贝塞尔连接 T平滑二次贝塞尔 A使用椭圆曲线连接 Z将路径封闭到
- this.exec("path", UDE, UPE); return this;
- },
- text: function (UDE, UCE, UPE) { //text文本
- var i, _UDOD = $$.NS("text", UDE);
- for (i in UCE) { if (UCE.hasOwnProperty(i)) { $$.NS(i, UCE[i], _UDOD); } }
- _UDOD.innerHTML += ""; (UPE || this.ob).appendChild(_UDOD); this.ca = _UDOD; return this;
- },
- //特效
- execT: function (UCE, UPE, UTF) { //特效统一定义
- var i, j, _UNE, _UOE, _UDTD, _UDOD = UTF || $$.NS("defs");
- for (i in UCE) { //添加
- if (UCE.hasOwnProperty(i)) { //添加向下的用户
- _UNE = UCE[i].Child; delete UCE[i].Child; _UDTD = $$.NS(i, UCE[i], _UDOD);
- if (_UNE) { for (j = 0; j < _UNE.length; i++) { _UOE = {}; _UOE[_UNE[i][0]] = _UOE[_UNE[i][1]]; this.execT(_UOE, null, _UDTD); } }
- }
- }
- (!UTF) && ((UPE || this.ob).appendChild(_UDOD)); //添加特效
- },
- filter: function (UDE, UCE) { //创建投影 默认窗体投影
- UDE = UDE || { id: "f" + Guid.guidNoDash(), x: "0", y: "0", width: "200%", height: "200%" };
- UDE.Child = UCE || [["feOffset", { "result": "offOut", "in": "SourceAlpha", dx: "20", dy: "20"}], ["feGaussianBlur", { result: "blurOut", "in": "offOut", "stdDeviation": "10"}], ["feBlend", { "in": "SourceGraphic", "in2": "blurOut", "mode": "normal"}]];
- this.execT({ filter: UDE }); return this;
- },
- linearG: function (UDE, UCE) { //线性渐变 默认色彩模型
- UDE = UDE || { id: "grad" + Guid.guidNoDash(), x1: "0%", y1: "0%", x2: "100%", height: "0%" };
- UDE.Child = UCE || [["stop", { "offset": "0%", "style": "stop-color:#000"}], ["stop", { offset: "100%", style: { "cssText": "stop-color:#FFF"}}]]; ;
- this.execT({ linearGradient: UDE });
- },
- radialG: function (UDE, UCE) { //径向渐变
- UDE = UDE || { id: "grad" + Guid.guidNoDash(), cx: "50%", cy: "50%", r: "50%", fx: "50%", fy: "50%" };
- UDE.Child = UCE || [["stop", { "offset": "0%", "style": { "cssText": "stop-color:#000;"}}], ["stop", { "offset": "100%", "cssText": "stop-color:#FFF"}]];
- this.execT({ radialGradient: UDE });
- },
- animate: function (UTP) { //动画效果设置
- (UTP != "set") && (UTP = "animate" + UTP.replace("animate", ""));
- },
- "$": function () { //svg查找元素
- }
- }
- _UME.init.prototype = _UME; return _;
- })()
- //#endregion
- //#region 文件操作区域
- //设置文件读取
- U.CV.FRead = function (UFE, UDE, UTF) {
- return new U.CV.Finit(UFE, UDE, UTF).start();
- }
- //获取文件设置
- U.CV.Finit = function (UFE, UDE, UTF) {
- this.ULE; this.UDE = UDE; this.UFE = UFE.files; this.UTF = UTF; this.UIF = UDE.upload; this.US = UDE.ST || 0; this.UL = UDE.L || 0; this.UIT = 0; this.URE = new FileReader();
- }
- //文件读取事件
- U.CV.Event = ["onabort", "onerror", "onload", "onloadstart", "onloadend", "onprogress"];
- //开始读取文件
- U.CV.start = function () {
- var _UFT, _UTF = this.UTF, _UFLE = this.UFE[this.UIT]; //生成读取文件
- if ((_UTF == "img" || _UTF == "Limg") && (_UFT = (/image\/\w+/.test(_UFLE.type)))) { this.imgR(_UFLE); } //图片读取 生成
- else if (_UTF != "img") { this.read(_UFLE, this.US, this.US + this.UL); } //文件读取
- return this;
- }
- //中断当前操作
- U.CV.abort = function () {
- this.URE.abort(); //关闭当前读取文件操作
- return this;
- }
- //图片读取加载
- U.CV.imgR = function (UFE) {
- var i, _UDE = this.Event, _URE = this.URE;
- for (i = 0; i < _UDE.length; i++) { _URE[_UDE[i]] = function(){this[_UDE[i]]()}; } //事件赋值
- _URE.readAsDataURL(UFE); return this; //图片读取
- }
- //读取文件
- U.CV.read = function (UFE, US, UE) {
- var i, _UFLE, _UFL = UFE.size, _URE = this.URE; US = US || 0; UE = UE || _UFL; UE = UE > _UFL ? _UFL : UE;
- for (i = 0; i < _UDE.length; i++) { _URE[_UDE[i]] = function(){this[_UDE[i]]()}; } //事件赋值
- if (!US && UE == UFE.size) { _UFLE = UFE; } //无分割形式
- else { _UFLE = (UFE.webkitSlice || UFE.mozSlice || UFE.slice)(US, UE); } //分割文件
- _URE.readAsBinaryString(_UFLE); return this; //读取文件流
- }
- //操作终结
- U.CV.onabort = function (UE) {
- (this.UDE.abort) && (this.UDE.abort(UE)); //文件读取终结
- return this;
- }
- //读取文件失败
- U.CV.onerror = function (UE) {
- (this.UDE.error) && (this.UDE.error(UE)); //读取文件失败回调
- return this;
- }
- //读取本地文件成功
- U.CV.onload = function (UE) {
- if (this.URE.readyState == FileReader.DONE) { //读取文件成功
- (this.UDE.load) && (this.UDE.load(this.URE)); //读取文件成功回调
- (this.UIF) && (this.upload(UE.srcElement.result)); //上传
- }
- return this;
- }
- //读取文件开始调用
- U.CV.onloadstart = function (UE) {
- (this.UDE.loadstart) && (this.UDE.loadstart(UE));
- return this;
- }
- //读取文件后
- U.CV.onloadend = function (UE) {
- if (!this.UIF) {
- if (this.UIT == this.UFE.length - 1) { this.abort(); this.URE = null; delete this; } //释放资源
- else {//继续解析
- var _UIE = this.UIT, _UE = this.US + this.UL;
- if (!_UE && this.UFE[_UIE].size > _UE) { this.US = _UE; } //同一文件继续解析
- else { this.US = 0; this.UIT++; } //解析下一个文件
- this.start();
- }
- }
- return this;
- }
- //读取的进度
- U.CV.onprogress = function (UE) {
- (this.UDE.progress) && (this.UDE.progress(UE));
- return this;
- }
- //文件断点续传
- U.CV.upload = function (UDE) {
- var i, _UOE = this.UDE.upload, _UAE = {};
- for (i in _UOE["on"]) { if (_UOE.hasOwnProperty(i)) { _UAE[i] = function(){this.Asynupload();}; } }
- this.ULE = this.ULE || U.CV.UL(_UOE["url"], _UAE, _UOE["emit"], _UOE["options"] || { "connect timeout": "30000" }).emit(UDE);
- return this;
- }
- //接收服务器返回消息
- U.CV.Asynupload = function (UDE) {
- var i, _UOE = this.UDE.upload.on;
- for (i in _UOE) { if (_UOE.hasOwnProperty(i)) { _UOE[i](UDE); } } //发送返回的消息
- this.onloadend(); //继续解析上传
- }
- //#endregion
- /*-------------------------------------暂未使用函数--------------------------------------*/
- //专用线程创建 不共享数据
- U.DW.dwork = (function () {
- var _e, _ = function (UDE, UTP) { if (window.Worker) { return new _e.init(UDE, UTP); } else { return false; } }
- _.prototype = _e = {
- init: function (UDE, UTP) {//创建线程监视
- var i, _USE = {}, _UCE = ["message", "erorr"]; this.UTP = UTP; this.UE = UDE; this.UW = new (UTP ? SharedWorker : Worker)(UDE.url || new Blob([UDE.fun.toString(), "this.onmessage = function (e) {" + (UDE.fun.name || UDE.fun) + "(e.data);}"], { type: "application/javascript" }), UTP); this.SetW = UDE.cb; this.USE = UDE.USE;
- this.UME = UTP ? this.UW.port : this.UW; for (i = 0; i < _UCE.length; i++) { _USE[_UCE[i]] = function(){this[_UCE[i]]()}; } this.event(_USE); //线程设置
- },
- event: function (UDE) { //事件绑定
- for (var i in UDE) { if (UDE.hasOwnProperty(i)) { this.on(i, UDE[i]); } } //绑定事件
- },
- message: function (UE) { //获取消息后使用消息
- var _UDE = this.UE.event; this.set(UE); (_UDE && _UDE.message && UE) && (_UDE.message(UE));
- },
- erorr: function (UE) { //线程异常
- var _UDE = this.UE.event, _UGE = UE.getData().data; this.log(_UGE);
- (_UDE && _UDE.erorr) && (_UDE.erorr(_UGE)); //设置
- },
- post: function (UDE) { //发送消息
- this.UME.postMessage(UDE);
- },
- stop: function () { //停止线程
- this.UW.terminate();
- },
- set: function (UE) { //设置共享数据变化
- this.USE = this.SetW ? this.SetW(UE.data) : UE.data; //设置值
- },
- log: function (UE) { //添加输出调试
- U.UF.C.console(UE);
- },
- on: function (UTP, cb) { //事件绑定
- U.UF.EV.addElementEvent(UTP, this.UME, cb, false);
- },
- off: function (UTP, cb) { //事件取消
- U.UF.EV.delElementEvent(UTP, this.UME, cb, false);
- },
- onm: function (UDE) { //线程内存处理
- },
- "import": function () {
- }
- }
- _e.init.prototype = _.prototype; return _;
- })()
- //html5离线存储,和前面的本地存储U.DW.local有什么区别?
- U.DW.appCache = (function () {
- var _e, _UAP = window.applicationCache, _ = function (UDE) { new _e.init(UDE); },
- AsynLoad = function (UDE) {//异步加载完毕
- if (!(UDE.length--)) { this.UDE.load(); } //缓存更新
- };
- _e = _.prototype = {
- init: function (UDE) { //初始化
- this.UDE = UDE; this.on(UDE);
- },
- on: function (UDE) { //这里是事件绑定
- var i, _UCE = ["checking", "noupdate", "download", "progress", "error", "updateready", "cached", "obsolete"];
- for (i = 0; i < _UCE.length; i++) { U.UF.EV.addElementEvent(_UCE[i], _UAP, this[_UCE[i]]) } return this; //事件绑定
- },
- noupdate: function (UE) { //无缓存更新
- var _UDE = this.UDE; (_UDE.noupdate) && (_UDE.noupdate(UE));
- },
- checking: function (UE) {//更新页面触发
- var _UDE = this.UDE; (_UDE.checking) && (_UDE.checking(UE));
- },
- download: function (UE) { //开始下载触发
- var _UDE = this.UDE; (_UDE.download) && (_UDE.download(UE));
- },
- progress: function (UE) { //下载进度
- var _UDE = this.UDE; (_UDE.progress) && (_UDE.progress(UE));
- },
- error: function (UE) { //更新发生错误
- var _UDE = this.UDE; (_UDE.download) && (_UDE.download(UE));
- },
- updateready: function (UE) { //成功更新
- if (UE.status == _UAPe.UPDATEREADY) {
- var _USE, _UDE = this.UDE; (_UDE.updateready) && (_USE = _UDE.updateready(UE));
- try { _UAP.swapCache(); (_USE) && (this.load(_USE)); return true; } catch (e) { return false; }
- }
- },
- load: function (UDE) { //加载文件替换缓存
- if (UDE === true) { location.reload(); } //直接刷新页面
- else { var i, _UCB = function(){AsynLoad(UDE);}; for (i = 0; i < UDE.length; i++) { U.UF.DL.asynLoadJs(null, null, _UCB, UDE[i], true); } } //异步加载
- },
- cached: function () { //缓存已经下载完成 指定的缓存文件给缓存
- var _UDE = this.UDE; (_UDE.cached) && (_UDE.cached(UE));
- },
- obsolete: function (UE) { //manifest的请求 404 缓存删除
- var _UDE = this.UDE; (_UDE.obsolete) && (_UDE.obsolete(UE));
- },
- update: function () { //更新缓存
- _UAP.update(); return this;
- },
- abort: function () { //获取下载取消
- _UAP.abort(); return this;
- },
- swapCache: function () { //更新缓存替换
- _UAP.swapCache(); return this;
- },
- status: function () { //缓存
- return _UAP.status;
- }
- }
- _e.init.prototype = _.prototype;
- })()
- //#region
- /*-----------------------------------------------------------------------------暂未使用函数--------------------------------------------------*/
- //拉拽上传控件,暂未使用..
- U.UF.UP.dragUp = function () {
- var _UME, _ = function (UDE) {
- if ($$("div").draggable !== undefined) { return (new _UME.init(UDE)).create(); }
- else { throw Error("You browser is no drag !"); }
- };
- _.prototype = _UME = {
- chche: null,
- init: function (UDE) {//初始化
- U.UF.C.AddObj(this, UDE);
- },
- type: function (UTP) { //格式限制
- this.type = UTP ? U.UF.C.SFT(UTP) : UTP;
- },
- on: function (UDE, UDV) {//事件绑定
- var i, _UAE = UDE; (U.UF.C.isString(UDE) && (_UAE = {}, _UAE[UDE] = UDV, _UAE = UDE));
- U.UF.C.AddObj(this, _UAE);
- },
- off: function (UDE, UDV) { //事件取消
- var i, _UT = this, _UAE = UDE; (U.UF.C.isString(UDE) && (_UAE = {}, _UAE[UDE] = UDV, _UAE = UDE));
- _$.Each(_UAE,function (UA, UB) { _UT[UB] = null; delete _UT[UB]; });
- },
- create: function () { //创建拖拽上传
- if (this.obj) {
- var i, _UDE = { dragstart: "start", dragend: "end", dragleave: "leave", dragenter: "enter", dragover: "over", drop: "drop"} //需要绑定的事件
- for (i in _UDE) { if (_UDE.hasOwnProperty(i)) { _UDE[i] = function(){this[_UDE[i]]()}; } } U.selectEl(this.obj).bind((this.Events = _UDE)); //事件绑定
- }
- return this;
- },
- exec: function (UTP, UCE) { //统一执行区域
- (U.UF.C.isFunction(this[UTP])) && (this[UTP]());
- },
- start: function () { return false; },
- enter: function (UE) { //进入其容器范围内时触发
- (this.en) && (this.en(UE));
- U.UF.EV.stopDefault(); return false;
- },
- over: function (UE) { //文件另一对象触发
- (this.ov) && (this.ov(UE));
- U.UF.EV.stopDefault(); return false;
- },
- drop: function (UE) { //文件放置触发 over必须阻止默认事件
- var i, _UTP = this.type, _UFE = UE.dataTransfer.files; this.chche = _UFE;
- U.UF.EV.stopDefault(); (this.dr) && (this.dr(_UFE)); return false; //回调函数
- },
- leave: function (UE) { //文件移动进入
- (this.le) && (this.le(UE));
- U.UF.EV.stopDefault(); return false;
- },
- end: function () {
- U.UF.EV.stopDefault(); return false;
- },
- read: (function () { //读取文件
- var _ = function (UFL, cb) {
- if (cb && UFL[0]) {
- U.UF.C.AddObj(this, { chace: UFL, i: 0, fun: cb || {}, pos: 204800, s: 0, e: 0 }); this.init(UFL[0]);
- }
- }
- _.prototype = {
- init: function (UFL) {
- var i, _UBE, _US = this.s, _UE = Math.min(_US + this.pos, UFL.size), _UDE = { "onloadstart": "start", "onprogress": "progres", "onload": "load", "onloadend": "end" }, _URE = new FileReader(); UFL = UFL || this.file;
- this.file = UFL; this.e = _UE; for (i in _UDE) { if (_UDE.hasOwnProperty(i)) { _URE[i] = function(){this[_UDE[i]]()}; } } UFL.slice = UFL.slice || UFL.webkitSlice || UFL.mozSlice; _URE.readAsBinaryString(UFL.slice(_US, _UE));
- },
- start: function () { //获取流值初始化
- var _UCB = this.fun.start; (U.UF.C.isFunction(_UCB)) && (_UCB());
- },
- progres: function () { //获取的进度
- var _UCB = this.fun.progres; (U.UF.C.isFunction(_UCB)) && (_UCB());
- },
- load: function () { //获取完毕
- var _UCB = this.fun.load; (U.UF.C.isFunction(_UCB)) && (_UCB());
- },
- end: function (UE) { //结束释放
- var _UCB, _URE, _UTF = true, _UPE = this.e; if (_UPE < this.file.size) { this.s = this.e; } else { _UTF = false; this.file = this.chace[(this.i += 1)]; } //获取md5结束
- _UCB = this.fun.end || this.fun; (U.UF.C.isFunction(_UCB)) && (_URE = _UCB(UE.target.result, !_UTF), _UTF = _UTF || _URE); (_UTF && this.file) && (this.init(this.file)); //异步回调
- },
- add: function () { //添加流记载
- }
- }
- return function (UFL, cb) {
- new _(UFL, cb);
- };
- })(),
- up: function (URL) { //上传文件
- $.Upload({ url: URL, file: this.chche, pro: this.pro });
- },
- pro: function (UE) { //上传监视
- (this.pr) && (this.pr(UE));
- },
- su: function (UE) { //当前图片上传完毕
- (this.s) && (this.s(UE));
- },
- all: function () {//所有文件上传完毕
- (this.cmp) && (this.cmp(UE));
- },
- hash: function (US, UE, cb) {
- var _UDE = U.UF.EC.crypto.algo.MD5.create();
- this.read(this.chche, function (UAE, UTF) {
- //上传时执行加密功能
- _UDE.update(U.UF.EC.crypto.enc.Latin1.parse(UAE));
- (UTF && cb) && (cb(_UDE.finalize()));
- return true;
- });
- // U.DW.dwork({ "url": "JScript8.js" })
- },
- de: function () { //删除文件
- }
- }
- _UME.init.prototype = _UME;
- return _;
- }
- //初始化上传自动识别上传工具
- U.UF.UP.inputUpload = function () {
- var _ = function () { }
- _.prototype = {
- init: function () {
- },
- isa: function () { //判断使用哪个模式
- },
- aas: function () { //解析
- },
- md5: function () { //获取文件的MD5
- }
- }
- return _;
- }
- //#endregion
- //#region 播放器区域,包含了视频播放器和音频播放器,但现在都没有使用!
- //Html5 音频播放器
- U.PL.au = function () {
- var _UME, _ = function (UDE, UDPD, UCE) {
- if ($$("video").canPlayType) { return new _UME.init(UDE, UDPD); }
- else { return; }
- }
- _UME = _.prototype = {
- attr: { pl: "preload", ap: "autoplay", lp: "loop", ct: "controls" },
- config: function (UCE) { //配置音乐
- (UCE) && (U.Json((this.cf = this.cf || {})).Add(UCE)); U.Json.Add(this.cf,{ l: this.cf.l || 0, urls: this.cf.urls || [] });
- },
- init: function (UDE, UDPD, UCE) { //初始化音频播放器
- U.UF.C.AddObj(this, { obj: UDE, pa: UDPD, au: null });
- },
- create: function (URL, UDPD) { //创建音乐播放器
- var _UCE = this.cf.html || {}; if ((URL = URL || this.cf.urls[this.cf.l])) { _UCE["src"] = URL; this.au = U.selectEl(this.au || $$("audio", null, UDPD || this.pa || document.body)).addAttrArray(_UCE); if (this.isPlay(U.UF.UP.getFileNameAndExtension(URL)[1])) { this.event(_UDE.e); } else { U.Alert(); }; } return this;
- },
- event: function () { //事件赋值
- var i, _UDOD = this.vi; //监听所有的事件
- if (U.PL._ev) { for (i = 0; i < U.PL._ev.length; i++) { U.UF.EV.addElementEvent(U.PL._ev[i], _UDOD, function(){this.cb(U.PL._ev[i]);}); } }
- },
- load: function (URL) { //播放音乐
- URL = URL || this.cf.urls[this.cf.l]; if (this.vi) { this.vi.url = URL; } else { this.create(URL); }
- },
- play: function (UTF) { //播放还是停止
- this.vi[UTF ? "play" : "pause"]();
- },
- sound: function () { //声音变化
- },
- lpb: function () { //修改播放的位置
- },
- muted: function () { //静音设置
- },
- isPlay: function (UTF, UDOD) { //判断是否允许播放该格式
- return (UDOD || this.vi).canPlayType(this.type[UTF.toLowerCase()]);
- },
- pb: function () { //进度条变化
- },
- Buffer: function () { //缓冲变化
- }
- }
- _UME.init.prototype = _UME; return _;
- }
- //#endregion
- ////----------------------------------------------------------------------------未用函数----------------------------------------------------------------------
- //切换效果
- U.UF.MR.OptionGroupSelect = function (UDOD) {
- var i, _UIE, _UDPD = U.selectEl(UDOD).Parent(), _UDSD = U.selectEl("span", _UDPD), _UDID = U.selectEl("i", _UDPD)[0], _UE = U.UF.EL.getElementInfo(UDOD);
- for (i = 0; i < _UDSD.length; i++) { U.selectEl(_UDSD[i]).addAttrArray({ "style": _UDSD[i] == UDOD ? ($(_UDPD).addAttrArray({ "selectnum": i }), U.selectEl(_UDID).animate({ "left": i * _UE["BCRW"] + "px" }, 100), { "fontWeight": "bold", "color": "White" }) : { "fontWeight": "normal", "color": "#000"} }); }
- }
- /**
- * 事件绑定
- *
- * @param {object} U.DW.local实例对象
- * @param {object} U.DW.local实例对象
- */
- // set: function (UDE, USE) { //设置值
- // if (this.UJE) {
- // var i, _UME = this.UJE;
- // (USE != null) && (i = UDE, UDE = {}, UDE[i] = USE);
- // for (i in UDE) {
- // (UDE.hasOwnProperty(i)) && (this.UTF ? _UME.setItem(i, UDE[i]) : (_UME.setAttribute(i, UDE[i]), _UME.save("us")));
- // }
- // }
- // return this;
- // },
-
- //动画效果函数
- Math.tween = {
- Linear: function (t, b, c, d) { return c * t / d + b; },
- Quad: {
- easeIn: function (t, b, c, d) {
- return c * (t /= d) * t + b;
- },
- easeOut: function (t, b, c, d) {
- return -c * (t /= d) * (t - 2) + b;
- },
- easeInOut: function (t, b, c, d) {
- if ((t /= d / 2) < 1) return c / 2 * t * t + b;
- return -c / 2 * ((--t) * (t - 2) - 1) + b;
- }
- },
- Cubic: {
- easeIn: function (t, b, c, d) {
- return c * (t /= d) * t * t + b;
- },
- easeOut: function (t, b, c, d) {
- return c * ((t = t / d - 1) * t * t + 1) + b;
- },
- easeInOut: function (t, b, c, d) {
- if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;
- return c / 2 * ((t -= 2) * t * t + 2) + b;
- }
- },
- Quart: {
- easeIn: function (t, b, c, d) {
- return c * (t /= d) * t * t * t + b;
- },
- easeOut: function (t, b, c, d) {
- return -c * ((t = t / d - 1) * t * t * t - 1) + b;
- },
- easeInOut: function (t, b, c, d) {
- if ((t /= d / 2) < 1) return c / 2 * t * t * t * t + b;
- return -c / 2 * ((t -= 2) * t * t * t - 2) + b;
- }
- },
- Quint: {
- easeIn: function (t, b, c, d) {
- return c * (t /= d) * t * t * t * t + b;
- },
- easeOut: function (t, b, c, d) {
- return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
- },
- easeInOut: function (t, b, c, d) {
- if ((t /= d / 2) < 1) return c / 2 * t * t * t * t * t + b;
- return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
- }
- },
- Sine: {
- easeIn: function (t, b, c, d) {
- return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;
- },
- easeOut: function (t, b, c, d) {
- return c * Math.sin(t / d * (Math.PI / 2)) + b;
- },
- easeInOut: function (t, b, c, d) {
- return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
- }
- },
- Expo: {
- easeIn: function (t, b, c, d) {
- return (t == 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
- },
- easeOut: function (t, b, c, d) {
- return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;
- },
- easeInOut: function (t, b, c, d) {
- if (t == 0) return b;
- if (t == d) return b + c;
- if ((t /= d / 2) < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
- return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;
- }
- },
- Circ: {
- easeIn: function (t, b, c, d) {
- return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
- },
- easeOut: function (t, b, c, d) {
- return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
- },
- easeInOut: function (t, b, c, d) {
- if ((t /= d / 2) < 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;
- return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
- }
- },
- Elastic: {
- easeIn: function (t, b, c, d, a, p) {
- var s;
- if (t == 0) return b;
- if ((t /= d) == 1) return b + c;
- if (typeof p == "undefined") p = d * .3;
- if (!a || a < Math.abs(c)) {
- s = p / 4;
- a = c;
- } else {
- s = p / (2 * Math.PI) * Math.asin(c / a);
- }
- return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
- },
- easeOut: function (t, b, c, d, a, p) {
- var s;
- if (t == 0) return b;
- if ((t /= d) == 1) return b + c;
- if (typeof p == "undefined") p = d * .3;
- if (!a || a < Math.abs(c)) {
- a = c;
- s = p / 4;
- } else {
- s = p / (2 * Math.PI) * Math.asin(c / a);
- }
- return (a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b);
- },
- easeInOut: function (t, b, c, d, a, p) {
- var s;
- if (t == 0) return b;
- if ((t /= d / 2) == 2) return b + c;
- if (typeof p == "undefined") p = d * (.3 * 1.5);
- if (!a || a < Math.abs(c)) {
- a = c;
- s = p / 4;
- } else {
- s = p / (2 * Math.PI) * Math.asin(c / a);
- }
- if (t < 1) return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
- return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;
- }
- },
- Back: {
- easeIn: function (t, b, c, d, s) {
- if (typeof s == "undefined") s = 1.70158;
- return c * (t /= d) * t * ((s + 1) * t - s) + b;
- },
- easeOut: function (t, b, c, d, s) {
- if (typeof s == "undefined") s = 1.70158;
- return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
- },
- easeInOut: function (t, b, c, d, s) {
- if (typeof s == "undefined") s = 1.70158;
- if ((t /= d / 2) < 1) return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
- return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
- }
- },
- Bounce: {
- easeIn: function (t, b, c, d) {
- return c - Tween.Bounce.easeOut(d - t, 0, c, d) + b;
- },
- easeOut: function (t, b, c, d) {
- if ((t /= d) < (1 / 2.75)) {
- return c * (7.5625 * t * t) + b;
- } else if (t < (2 / 2.75)) {
- return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;
- } else if (t < (2.5 / 2.75)) {
- return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;
- } else {
- return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;
- }
- },
- easeInOut: function (t, b, c, d) {
- if (t < d / 2) {
- return Tween.Bounce.easeIn(t * 2, 0, c, d) * .5 + b;
- } else {
- return Tween.Bounce.easeOut(t * 2 - d, 0, c, d) * .5 + c * .5 + b;
- }
- }
- }
- };
- U.UF.C.AddObj(U.P, Math.tween);
- //#region 画图函数
- U.UF.Math.RandomXY = function () {
- }
- //判断鼠标是否在div上
- U.UF.Math.MouseInRect = function (UDOD) {
- var _UE = U.UF.EL.getMousePosition(), _UWH = U.UF.EL.getElementInfo(UDOD);
- return _UE.X > _UWH.BCRL && _UE.X < _UWH.BCRR && _UE.Y > _UWH.BCRT && _UE.Y < _UWH.BCRB;
- }
- //画点 位置和大小
- U.UF.Math.DrawPoint = function (x, y, c, s, con) {
- $$("div", { "style": { "position": "absolute", "left": x + "px", "top": y + "px", "backgroundColor": c || "#000", "width": (s || 1) + "px", "height": (s || 1) + "px"} }, con || document.body);
- }
- //画线
- U.UF.Math.DrawLine = function (x, y, ex, ey, s, c, con) {
- var i, j, _UL, _USE, _UJE, _UKE, _UX = ex - x, _UY = ey - y, _UDFD = $$("frag"); s = s || 1;
- if (!_UX) { i = Math.min(y, ey); _UL = Math.max(y, ey); for (; i < _UL; i++) { U.UF.Math.DrawPoint(x, i, c, s, _UDFD); } } //画竖线
- else if (!_UY) { i = Math.min(x, ex); _UL = Math.max(x, ex); for (; i < _UL; i++) { U.UF.Math.DrawPoint(x, i, c, s, _UDFD); } } //画横线
- else { //画斜线
- j = i = Math.min(x, ex); _UL = Math.max(x, ex); _UJE = (ey - y) / (ex - x); _USE = Math[_UJE > 0 ? "min" : "max"](y, ey); //sin(a) 斜率以横最为增长值
- for (i; i <= _UL; i++) { U.UF.Math.DrawPoint(i, (i - j) * _UJE + _USE, c, s, _UDFD); } //变化递增
- }
- (con || document.body).appendChild(_UDFD);
- }
- //画矩形
- U.UF.Math.DrawRect = function (x, y, w, h, c, con) {
- var i, _UTY = y + h, _UDFD = $$("frag");
- for (i = 0; i < w; i++) { U.UF.Math.DrawLine(x + i, y, x + i, _UTY, 1, c, _UDFD); }
- (con || document.body).appendChild(_UDFD);
- }
- //移除元素
- U.UF.Math.Clean = function () {
- }
- //sin曲线
- U.UF.Math.Sin = function (x, y, r, c, w) {
- for (var i = 0; i < r; i++) U.UF.Math.DrawPoint(x + i, y + Math.sin(i / 180 * Math.PI) * 100, c, w);
- }
- //cos曲线
- U.UF.Math.Cos = function (x, y, r, c, w) {
- for (var i = 0; i < r; i++) U.UF.Math.DrawPoint(x + i, y + Math.cos(i / 180 * Math.PI) * 100, c, w);
- }
- //画圆边框
- U.UF.Math.Circle = function (x, y, r, c, w) {
- var j, i = 0, _s, _UX, _UY; w = w || 1;
- while (i < 360) {
- _UX = Math.sin(Math.PI / 180 * i) * r; _UY = Math.cos(Math.PI / 180 * i) * r; _s = w / 100;
- _s = _s < 0.2 ? 0.2 : (_s > 1 ? 1 : _s); U.UF.Math.DrawPoint(_UX + x, _UY + y, c, w); i += _s;
- }
- }
- //多边形
- U.UF.Math.Polygon = function (xye, c, w) {
- var i, x, y, _UL = xye.length;
- for (i = 0; i < _UL; i++) { U.UF.Math.DrawLine(xye[i].x, xye[i].y, xye[i == _UL - 1 ? 0 : i + 1].x, xye[i == _UL - 1 ? 0 : i + 1].y, w, c); }
- }
- //#endregion
- /*--------------------------------------------------------------未使用到的函数-------------------------------------------------------*/
- //判断两个数组大小
- U.UF.C.ciArray = function (UOE, UTE) {
- return UOE.length > UTE.length;
- }
- //类型判断使用,统一执行调用函数
- U.UF.C.exe = function () { }
- //类型判断,此函数被U.UF.C.getType函数取代,暂没使用
- //U.UF.C.getType = function (UAE) {
- // var i, _UDE = ["Array", "Object", "Boolean", "Number", "String", "Function", "RegExp", "Date", "Error", "NaN", "Null", "Undefined"];
- // for (i = 0; i < _UDE.length; i++) { if (U.UF.M["is" + _UDE[i]](UAE)) { return _UDE[i]; } }//判断该UAE是什么类型
- //}
- //-------------------------------------------------------------------------------------------
- /**
- * 类型判断
- * @param {object} 需要判断参数类型.
- */
- U.UF.C.getType =function (obj){
- return Object.prototype.toString.call(obj)//判断该传入的参数是什么类型
- }
- //判断对象
- U.UF.Ut.compareObject = function (UOE, UTE) {
- var i, j, _USE = [0, 0], _UDE = arguments;
- if (_UDE.length) {
- for (i = 0; i < _UDE.length; i++) {
- for (j in _UDE[i]) { (_UDE[i].hasOwnProperty(j)) && (_USE[i]++); }
- }
- return _USE[0] > _USE[1];
- }
- }
- //判断字符串
- U.UF.Ut.compareString = function (UOE, UTE) {
- return UOE.localeCompare(UTE) == 1;
- }
- //判断数字
- U.UF.Ut.compareNumber = function (UOE, UTE) {
- return UOE > UTE;
- }
- //判断时间
- U.UF.Ut.compareDate = function (UOE, UTE) {
- return U.UF.D.sizeComparison(UOE, UTE);
- }
- //判断是否为 Symbol
- U.UF.C.isSymbol = function (UDE) {
- if (UDE) { return (typeof UDE == "symbol" || U.UF.C.getType(UDE) == "Symbol"); }
- }
- //转化成数字
- /**
- * 判断是否为元素
- *
- * @param {string} 元素
- * @return {boolean} 返回是否为元素 同时不为文本元素
- */
- U.UF.C.toInteger = function (UDE) {
- var _URE = 0; UDE = Number(UDE);
- if (!isNaN(UDE) && isFinite(UDE)) {
- _URE = UDE;
- }
- else {
- UDE = UDE || 0; UDE = (UDE > 0 ? 1 : -1) * Math.floor(Math.abs(UDE));
- }
- return Math.max(Math.min(_URE, Number.MAX_SAFE_INTEGER), 0);
- }
- //监视
- U.UF.C.observe = function () {
- U.UF.EV.boundProperties();
- }
- //取消监视
- U.UF.C.unobserve = function () {
- U.UF.EV.boundProperties();
- }
- //#region jsonp跨域获取数据,1473的项目跨域到百度,只能通过js方式进行跨域。js引用百度的一个js,百度返回一个值。就可以跨域了。
- /**
- * jsonp跨域获取数据初始化
- *
- * @param {object} jsonp参数
- ----------[call] 回调函数
- ----------[parameter] 回调参数
- * @return {string} jsonp类对象
- */
- U.A.Jsonp = $.Jsonp = function (UDE) {
- var _UTE = new U.A.Jsonp.init(UDE); //初始化jsonp类
- _UTE.send(); //发送请求
- return _UTE;
- }
- /**
- * jsonp初始化对象
- *
- * @param {object} jsonp参数
- ----------[call] 回调函数
- ----------[parameter] 回调参数
- */
- U.A.Jsonp.init = function (UDE) { //初始化Jsonp对象
- U.UF.C.AddObj(this, UDE);
- }
- U.A.Jsonp.init.prototype = {
- /**
- * jsonp发送请求数据
- *
- */
- send: function () {
- var _URL = this.url, //发送的地址
- _UCE = this.call, //发送的回调函数
- _UPE = this.parameter, //发送的参数
- UDID = U.UF.EV.eventDelegation(function(){this.success();}).id; //设置委托状态 等待回调
- this.UFE = U.UF.DL.asynLoadJs(_URL + (_UCE ? "?callback=" + _UDID + "&" : "") + (_UPE ? "parameter=" + U.UF.C.urlEncode(_UPE) : ""), "js", function(){this.Asyn();}, null, true); //请求数据等待回调
- },
- //异步加载成功
- Asyn: function () { },
- /**
- * jsonp异步回调
- *
- */
- success: function (r) {
- (this.call) && (this.call(r)); //执行回调函数
- U.selectEl(this.UFE).remove(); //删除遗留的jsonp数据文件
- }
- }
- //#endregion
- U.UF.S.browsers = {
- msie: /msie ([\d.]+)|(trident)\/([\d.]+)/, //ie正则
- firefox: /firefox\/([\d.]+)/, //firfox正则
- chrome: /chrome\/([\d.]+)/, //chrome正则
- opera: /opera.([\d.]+)/, //opera正则
- safari: /version\/([\w.]+).*(safari)/ //safari正则
- };
- /**
- 例:/disk?id=1235; 拆分为host:www.1473.cn search:id=123
- * 获取url
- *
- * @param {string} url值
- * @return {object} 返回url对象
- ----------[host] 返回域的地址
- ----------[search] 返回search
- */
- U.UF.C.splitUrl = function (url) {
- //UURL url
- var _UDAD = $$("a", { "href": url }); //新建a标签
- return { "host": _UDAD.href.replace(_UDAD.search, ""), "search": _UDAD.search };
- }
- //http://static.zhihu.com/static/js/v2/ui/editor_plugin_code.js
- /*
- var _ = this.getStateTuple(), state = _.state, range = _.range, code = _.code
- if (state !== Plugin.State.EDITABLE) return
- var text, textType = 'text/plain'
- var clipboard = e.getBrowserEvent().clipboardData
- if (clipboard) { // w3c(webkit,opera...)
- if (clipboard.types && goog.array.contains(clipboard.types, textType)) {
- e.preventDefault()
- text = clipboard.getData(textType)
- this.replaceText(range, text)
- }
- } else if (window.clipboardData) { // IE
- text = window.clipboardData.getData('Text')
- if (text) {
- e.preventDefault()
- this.replaceTextIE(range, text)
- }
- } else { // FF
- // TODO:rewrite
- var offset = range.getStartOffset()
- var selectedLength = range.getText().length
- var codeLength = function () {
- return code.firstChild ? goog.editor.node.getLength(code.firstChild) : 0
- }
- var endLength = codeLength() - offset - selectedLength
- setTimeout(function () {
- Plugin.cleanup(code)
- var caretOffset = codeLength() - endLength
- if (code.firstChild) {
- goog.dom.Range.createCaret(code.firstChild, Math.max(offset, caretOffset)).select()
- }
- })
- }
- */
- /**
- * 右键菜单定位
- *
- * @param {string} 需要定位的右键菜单
- */
- /*U.UF.C.rightClickMenuLocation = function (UDOD) {
- //UDOD 需要定位的元素
- var _UDPD = U.UF.EL.offsetParent(UDOD), //获取元素offsetParent
- _UEV = U.UF.C.GetMousep(_UDPD), //当前鼠标位置
- _UW = [UDOD.offsetWidth, _UDPD.offsetWidth], //记录UUOD的offsetWidth属性
- _UH = [UDOD.offsetHeight, _UDPD.offsetHeight]; //记录UUOD的offsetHeight属性
- _UEV["X"] = ((_UW[0] + _UEV["X"]) > _UW[1]) ? _UEV["X"] - _UW[0] : _UEV["X"]; //设置top最大范围
- _UEV["Y"] = ((_UH[0] + _UEV["Y"]) > _UH[1]) ? _UEV["Y"] - _UH[0] : _UEV["Y"]; //设置left最大范围
- $(UDOD).addAttrArray({ "style": { "cssText": "top:" + _UEV["Y"] + "px;left:" + _UEV["X"] + "px"} }); //右键菜单的位置
- }*/
- /**
- * 获取元素的定位位置
- *
- * @param {element} 元素
- * @return {array} 返回元素的位置
- ----------[0] 元素的top
- ----------[1] 元素的left
- */
- /*U.UF.M.pageXY = function (UDOD) {
- var _UTP,
- _UDE = [0, 0]; //需要返回的元素的位置
- while (UDOD) {
- _UTP = U.UF.EL.getStyle(UDOD, "position"); //元素的position
- if (_UTP != "static") {
- _UDE[0] += UDOD.offsetTop; //元素的上距
- _UDE[1] += UDOD.offsetLeft; //元素的左距
- }
- UDOD = UDOD.offsetParent;
- }
- return _UDE; //返回
- }*/
- /**
- * 判断元素的属性是自定义属性还是系统属性 true自定义 false固有
- *
- * @param {element} 当前元素
- * @param {string} 为元素的各属性
- * @return {number} 位置
- */
- /*U.UF.EL.isCustomAttributes = function (UDOD, UTP) {
- UDOD = UDOD || $$("div");
- var _UAE = UDOD.attributes; //_UAE 为UDOD的属性集合
- if (_UAE) {
- if (_UAE[UTP]) { //IE6-7判断是否是自定义属性
- return _UAE[UTP].expando == true;
- }
- else { //是否为自定义属性
- return UDOD.getAttribute(UTP) !== null || UDOD[UTP] === void 0;
- }
- }
- }*/
- /**
- * 判断元素的位于第几个
- *
- * @param {element} 当前元素
- * @return {number} 位置
- */
- /*U.UF.EL.indexOfParent = function (UDOD) {
- var _UDAD = U.selectEl($(UDOD).Parent()).Child();
- return _UDAD.indexOf(UDOD); //判断元素在指定的位置第几个
- }*/
- //1、[{parentid:1, username:"a"},{parentid:1,username:"b"},{parentid:2,username:"c"}] = [{parentid:1, username:"a"},{parentid:1,username:"b"}]
- ////数组、obj({parentid:1,username:"a"}); 10
- //U.Json.select = function (UCE, UKE, UT, USE, UDE) {//条件获取
- // var i, _UTF; USE = USE || []; UDE = arguments.length > 4 ? UDE : this.Value;
- // if (Array.isArray(UDE)) { for (i = 0; i < UDE.length; i++) { if (USE.length == UT) { break; } this.select(UCE, UKE, UT, USE, UDE[i]); } }
- // else {//对象添加处理
- // if (this.ifExists(UCE, UDE)) { USE.push(UDE); } //确定本身是否为目标
- // if (UKE === true) { for (i in UDE) { if (USE.length == UT) { break; }; if (U.UF.C.getType(UDE[i]) == "object") { U.Json(UDE[i], this).select(UCE, UKE, UT, USE); } } } //全盘搜索
- // else if (UKE) { if (USE.length != UT && UDE[UKE]) { U.Json(UDE[UKE], this).select(UCE, UKE, UT, USE); }; } //条件搜索
- // }
- // return USE;
- //}
- //1、[{parentid:1, username:"a"},{parentid:1,username:"b"},{parentid:2,username:"c"}] = [{parentid:1, username:"a"},{parentid:1,username:"b"}]
- //数组、obj({parentid:1,username:"a"});
- //U.Json.ifExists = function (UCE, UDE) { //判断数据是否符合条件
- // var i, _UTF;
- // UDE = UDE || this.Value;
- // //判断条件是否就是指定判断的元素,如果是直接返回true,
- // if (UDE === UCE) {
- // return true;
- // }
- // //循环条件,当条件中所有的条件都满足的时候,为true;否则为false
- // for (i in UCE) {
- // if (UCE.hasOwnProperty(i)) {
- // if (UDE[i] === UCE[i]) {
- // _UTF = true;
- // }
- // else {
- // _UTF = false;
- // break;
- // }
- // }
- // }
- // return _UTF;
- //}
- ////初始化json操作区域
- ////
- //U.Json = function () {
- // var _um = U.UF.M; //引用
- // //初始化方法,类似Java中的构造函数,自动执行
- // var _UME, _UFE = function (UDE, UPE) {
- // //new的方式进入
- // if (this.init == _UME.init) {
- // this.init(UDE, UPE);
- // }
- // //直接以函数的方式进入
- // else {
- // return new _UME.init(UDE, UPE);
- // }
- // },
- // cb = function (UTP) { //通过类型获取回调函数形式
- // return function (UDE) {
- // if (UTP == null) {
- // return UDE;
- // } //直接返回使用
- // else if (U.UF.C.isFunction(UTP)) {
- // return UTP.apply(null, arguments);
- // } //函数使用
- // else if (U.UF.C.isObject(UTP)) {
- // return _UME.ifExists(UTP, UDE);
- // } //判断对象的使用
- // return UDE[UTP]; //字符串或者数字
- // }
- // },
- // //
- // maxAndmin = function (UDE, UCE, UII, UTP) {//最大最小统一使用区域
- // if (UDE) {
- // var _USE = -Infinity,
- // _UNE = -Infinity,
- // _UCB = cb(UCE);
- // UDE.forEach(function (UVE, UI) {
- // var _UKE = _UCB.call(UII, UVE, UI, UDE),
- // _UTF = (UTP == "max" && _UKE > _UNE) || (UTP == "min" && _UKE < _UNE);
- // if (_UTF || (_USE === _UNE && _UNE === -Infinity)) {
- // _UNE = _UKE;
- // _USE = UVE;
- // } //设置值
- // });
- // return _USE;
- // }
- // else {
- // throw new Error("数组异常");
- // }
- // };
- // //使用方法集
- // _UFE.prototype = _UME = {
- // init: function (UDE, UPE) { //初始化对象
- // this.Value = UDE;
- // this.Parent = UPE || window;
- // },
- // Clone: function (UDE) { //克隆对象 深克隆
- // var i, _UCE; UDE = UDE || this.Value;
- // if (U.UF.C.isObject(UDE)) {
- // _UCE = new UDE.constructor(); //通过源生成对象
- // if (Array.isArray(_UCE)) {
- // for (i = 0; i < UDE.length; i++) {
- // _UCE.push(arguments.callee(UDE[i]));
- // }
- // } //数组处理
- // else {
- // for (i in UDE) {
- // if (UDE.hasOwnProperty(i)) {
- // _UCE[i] = arguments.callee(UDE[i]);
- // }
- // }
- // } //对象处理
- // return _UCE;
- // }
- // return UDE;
- // },
- // Add: function (UCE) { //对象添加值
- // var i;
- // var _UDE = this.Value;
- // //判断是对象或者数组,如为数组,采用集合添加模式
- // if (!Array.isArray(_UDE)) {
- // for (i in UCE) {
- // if (UCE.hasOwnProperty(i)) {
- // _UDE[i] = UCE[i];
- // }
- // }
- // }
- // //集合添加模式,但好像没有进入这一个分支,在上传时进入此分支。
- // else {
- // for (i = 0; i < _UDE.length; i++) {
- // U.UF.C.AddObj(_UDE[i], UCE); //本身添加,太消耗了
- // }
- // } //数组方式为每一个都添加
- // return this.Value;
- // },
- // selectOne: function (UCE, UKE) {//搜索一个(跨层次)
- // return (this.select(UCE, UKE, 1))[0];
- // },
- // invoke: function (UN, UDE) { //自动调用
- // var _UT = this; (UDE) && (_UT = U.Json(UDE));
- // if (_UT[UN]) { return _UT[UN](); } //直接运行
- // },
- // sort: function (UCE, UVE, UDE) { //排序
- // UDE = UDE || this.Value; var _UKE, _UTF = U.UF.C.getType(UDE); (U.UF.C.isString(UCE)) && (_UKE = {}, _UKE[UCE] = 1, UCE = _UKE);
- // if (_UTF === "array") { //数组排序
- // (UDE.sort(function (UO, UT) {
- // var i, _UIE, _UTF;
- // if (U.UF.C.isFunction(_UTF)) { _UTF = UCE(UO, UT); } //函数回调查看
- // else if (U.UF.C.isObject(UCE)) { //对象处理
- // for (i in UCE) {
- // if (UCE.hasOwnProperty(i)) {
- // _UTF = typeof (UO[i] || UT[i] || "");
- // _UTF = _um["ci" + _UTF.capitalizeFirstLetter()](UO[i], UT[i]);
- // _UIE = UCE[i];
- // break;
- // }
- // } //排序
- // }
- // else {
- // _UTF = UO > UT;
- // } _UIE = _UIE || (UVE == -1 ? -1 : 1);
- // return _UIE * ((_UTF == 1 || _UTF == true) ? 1 : -1);
- // }));
- // return UDE;
- // }
- // else {
- // throw new Error(UDE + " is not an Array");
- // }
- // },
- // groupBy: function (UCE, UDE) {//分组查询
- // var _USE = {}, _UCB = cb(UCE); UDE = UDE || this.Value;
- // UDE.forEach(function (UVE, UI) {
- // var _UKE = _UCB(UVE);
- // (_USE[_UKE] == null) && (_USE[_UKE] = []);
- // _USE[_UKE].push(UVE);
- // });
- // return _USE;
- // },
- // toKeyArray: function (UCE, UDE) { //获取制定键的值
- // var _USE = []; UDE = UDE || this.Value;
- // if (!UDE.length) {
- // _USE.push(UDE[UCE]);
- // } else {
- // UDE.forEach(function (UVE, UI) {
- // var _UCB = cb(UCE);
- // _USE.push(_UCB(UVE, UI, UDE));
- // });
- // }
- // return _USE;
- // },
- // Where: function (UCE, UT, UDE, USE) { //条件选择 $gt(>) $lte(<=) $gt(>) $gte(>=) $ne(!=) $in(=) $nin(!=)
- // UDE = UDE || this.Value;
- // var i, j, k, z, _UGE, _UKE, _UFE, _UTE,
- // _UTF = U.UF.C.getType(UDE);
- // USE = USE || [];
- // if (_UTF === "object") { //普通对象处理
- // _UTF = []; for (i in UCE) {
- // if (UCE.hasOwnProperty(i)) {
- // _UGE = UCE;
- // _UTF = [];
- // _UTE = false;
- // switch (i) {
- // case "$or": _UGE = UCE[i];
- // _UTE = true;
- // break;
- // } //or使用
- // _UFE: for (j in _UGE) {
- // if (_UGE.hasOwnProperty(j)) {
- // _UKE: for (k in _UGE[j]) {
- // if (_UGE[j].hasOwnProperty(k)) {
- // switch (j) {
- // case "$e": _UTF.push(UDE[k] == _UGE[j][k]); break; //=
- // case "$ne": _UTF.push(UDE[k] != _UGE[j][k]); break; //!=
- // case "$lt": _UTF.push(UDE[k] < _UGE[j][k]); break; //<
- // case "$lte": _UTF.push(UDE[k] <= _UGE[j][k]); ; break; //<=
- // case "$gt": _UTF.push(UDE[k] > _UGE[j][k]); break; //>
- // case "$gte": _UTF.push(UDE[k] >= _UGE[j][k]); break; //>=
- // case "$in": for (z = 0; z < _UGE[j][k].length; z++) {
- // if (_UGE[j][k][z] == UDE[k]) {
- // _UTF.push(true);
- // break;
- // }
- // } _UTF = !_UTF;
- // break; //in
- // case "$nin": for (z = 0; z < _UGE[j][k]; z++) {
- // if (_UGE[j][k][z] == UDE[k]) { continue _UKE; }
- // }
- // _UTF.push(true);
- // break; //not in
- // case "$all": for (z = 0; z < _UGE[j][k]; z++) {
- // if (_UGE[j][k][z] != UDE[k]) { continue _UKE; }
- // }
- // _UTF.push(true);
- // break; //匹配所有
- // case "$exists": break; //存在文档
- // case "$mod": break; //取模函数
- // case "$not": break; //不匹配
- // }
- // }
- // }
- // }
- // }
- // }
- // if ((_UTE === true && _UTF.indexOf(true) > -1) || (_UTF.indexOf(false) == -1)) {
- // USE.push(UDE);
- // }
- // }
- // }
- // else if (_UTF == "array") { //数组选择
- // for (i = 0; i < UDE.length; i++) {
- // if (USE.length == UT) {
- // break;
- // }
- // this.Where(UCE, UT, UDE[i], USE);
- // }
- // }
- // return USE;
- // },
- // select: function (UCE, UKE, UT, USE, UDE) {//条件获取
- // var i, _UTF;
- // USE = USE || [];
- // UDE = arguments.length > 4 ? UDE : this.Value;
- // if (Array.isArray(UDE)) {
- // for (i = 0; i < UDE.length; i++) {
- // if (USE.length == UT) {
- // break;
- // }
- // this.select(UCE, UKE, UT, USE, UDE[i]);
- // }
- // }
- // else {//对象添加处理
- // if (this.ifExists(UCE, UDE)) {
- // USE.push(UDE);
- // } //确定本身是否为目标
- // if (UKE === true) {
- // for (i in UDE) {
- // if (USE.length == UT) {
- // break;
- // };
- // if (U.UF.C.getType(UDE[i]) == "object") {
- // U.Json(UDE[i], this).select(UCE, UKE, UT, USE);
- // }
- // }
- // } //全盘搜索
- // else if (UKE) {
- // if (USE.length != UT && UDE[UKE]) {
- // U.Json(UDE[UKE], this).select(UCE, UKE, UT, USE);
- // };
- // } //条件搜索
- // }
- // return USE;
- // },
- // Change: function (UCE, UDE) {//修改值
- // var i, _UDE = arguments.length > 1 ? UDE : this.Value, _UTF = U.UF.C.getType(_UDE);
- // if (_UTF == "object") {
- // for (i in UCE) {
- // if (UCE.hasOwnProperty(i)) {
- // _UDE[i] = UCE[i];
- // }
- // }
- // } //对象修改形式
- // else if (_UTF == "array") {
- // for (i = 0; i < _UDE.length; i++) {
- // this.Change(UCE, _UDE[i]);
- // }
- // } //数组修改方式 U.Json(_UDE[i], this).Change(UCE);
- // return _UDE;
- // },
- // //obj 是一个object,是待删除的元素的关键字,在数组中删除含有该object的元素,digui是bool型
- // //UKE 是 1、bool类型。如果为true,表示全递归查找数据,默认为false,不递归查找
- // // 2、或者str 例如:{"directory":"C盘","children":[{"directory":"windows","children":[]},{"directory":"programfiles","children":[]}]} 中的"children",根据此key去递归向下查找数据。找到数据后,匹配第一个参数,进行删除。
- // // 3、是递归参数,外部不调用。
- // del: function (obj, key, data) { //删除 允许递归
- // var i, _deldata;
- // data = data || this.Value; //传递进来的json数据
- // var _type = U.UF.C.getType(data); //获取元素类型
- // var _delarray = []; //返回的删除数据。
- // if (_type == "object") { //对象删除
- // if (this.ifExists(obj, data)) {
- // delete data;
- // _delarray.push(data);
- // }
- // else if (key === true) { //递归删除
- // for (i in data) {
- // _deldata = this.del(obj, key, data[i]); //递归删除该数据
- // _delarray = _delarray.concat(_deldata); //把删除的数据追加到变量中
- // }
- // }
- // else if (key && data[key]) { //根据指定的key进行递归删除
- // _deldata = this.del(obj, key, data[key]); //根据指定的key递归删除该数据
- // _delarray = data.concat(_deldata);
- // }
- // }
- // //数组删除指定obj条件的元素
- // else if (_type === "array") {
- // for (i = 0; i < data.length; i++) {
- // //循环删除 获取移除的元素
- // _deldata = this.del(obj, key, data[i]);
- // if (_deldata.length) { //判断是否移除了元素,length大于0相当于移除超过一个元素。
- // data.splice(i, 1); //数组的系统移除方法
- // _delarray = _delarray.concat(_deldata); //把移除的元素添加到变量中
- // i--; //由于上面用了循环i++ 移除元素后 数组的下标减一了,所以这里用i--让i回到前面一个循环,这样即使数组删除了一个元素也不会直接跳过下一个元素的循环
- // }
- // }
- // } //数组使用
- // return _delarray;
- // },
- // RecurD: function (UCE, UKE, UTP) { //数据递归
- // var _UAE, _UGE, i = UCE ? (_UGE = [UCE], 0) : (_UGE = [], -1), _UDE = this.Value;
- // if (Array.isArray(_UDE)) {
- // for (; i < _UGE.length; i++) {
- // if (i > -1) { for (j in UKE) { UKE[j] = _UGE[i][UTP]; } }
- // _UAE = U.Json.select(_UDE,UKE)[0]; (_UAE) && (_UGE.push(_UAE));
- // }
- // }
- // else {
- // while (_UGE[4][UKE]) {
- // _UDE.push(_UGE[4][_UPID]);
- // _UPID = _UGE[4][i]["UserDirectoryParentID"]
- // }
- // }
- // return _UGE;
- // },
- // NL: function (UCE, USE) { //通过数组生成集合
- // var i, _UDE = this.Value;
- // for (i = 0; i < UCE.length; i++) {
- // _UDE[UCE[i]] = USE[i];
- // }
- // return _UDE;
- // },
- // Reset: function (UCE) { //数组排序
- // var i, _UDE = this.Value;
- // for (i = 0; i < _UDE.length; i++) {
- // if (this.ifExists(UCE, _UDE[i])) {
- // _UDE.unshift(_UDE.splice(i, 1)[0]);
- // }
- // }
- // return _UDE;
- // },
- // Like: function (UCE, UT, UKE, USE) { //like使用
- // var i, _US, _UE,
- // _UDE = this.Value,
- // _UTF = U.UF.C.getType(_UDE);
- // USE = USE || [];
- // if (_UTF == "object") {
- // for (i in UCE) {
- // if (UCE.hasOwnProperty(i)) {
- // if (_UDE[i] != UCE[i]) {
- // if (typeof _UDE[i] == "object" || typeof _UDE[i] == "object") {
- // return;
- // }
- // _US = (_UDE[i] + "").toLocaleLowerCase(); _UE = (UCE[i] + "").toLocaleLowerCase();
- // if (!(_US.indexOf(_UE) > -1 || _UE.indexOf(_US) > -1)) {
- // return;
- // }
- // }
- // }
- // }
- // USE.push(_UDE);
- // }
- // else if (_UTF === "array") {
- // for (i = 0; i < _UDE.length; i++) {
- // U.Json(_UDE[i], this).Like(UCE, UT - USE.length, UKE, USE);
- // if (USE.length >= UT) {
- // USE.splice(UT, USE.length);
- // break;
- // }
- // }
- // }
- // return USE;
- // },
- // GZDL: function (UCE, UDE) {//选择指定字段的值
- // var i, _UKE = {}, _UDE = this.Value;
- // (U.UF.C.isString(UCE)) && (UCE = [UCE]);
- // for (i = 0; i < UCE.length; i++) { _UKE[UCE[i]] = _UDE[UCE[i]]; }
- // return _UKE;
- // },
- // //UCE是一个object,UDE是json。判断json中的数据是否包含该object。
- // //例:{name:张三,身高:1.8,体重:150} 查找{name:张三,身高:1.8},则符合条件,返回true,查找{name:张三,身高:1.5},则不符合条件,返回false.
- // ifExists: function (UCE, UDE) { //判断数据是否符合条件
- // var i, _UTF;
- // UDE = UDE || this.Value;
- // //判断条件是否就是指定判断的元素,如果是直接返回true,
- // if (UDE === UCE) {
- // return true;
- // }
- // //循环条件,当条件中所有的条件都满足的时候,为true;否则为false
- // for (i in UCE) {
- // if (UCE.hasOwnProperty(i)) {
- // if (UDE[i] === UCE[i]) {
- // _UTF = true;
- // }
- // else {
- // _UTF = false;
- // break;
- // }
- // }
- // }
- // return _UTF;
- // },
- // //#error
- // Merger: function (UDE) {//合并成数组分组
- // UDE = UDE || this.Value;
- // var i,
- // _USE = [],
- // _UTP = U.UF.C.getType(this.Value);
- // if (_UTP == "object") {
- // for (i in UDE) {
- // if (UDE.hasOwnProperty(i)) {
- // _USE = _USE.concat(UDE[i]);
- // }
- // }
- // }
- // else if (_UTP == "array") {
- // for (i = 0; i < UDE.length; i++) {
- // _USE = _USE.concat(UDE[i]);
- // }
- // }
- // return _USE;
- // },
- // ToString: function () { return U.UF.C.jsonToStr(this.Value); }, //把json 数组变成string
- // Each: function (cb, UDE) { //数据遍历
- // if (U.UF.C.isFunction(cb)) {
- // UDE = UDE || this.Value;
- // var i,
- // _UTF = U.UF.C.getType(UDE);
- // if (_UTF == "object") {
- // for (i in UDE) {
- // if (UDE.hasOwnProperty(i)) { cb(UDE[i], i, UDE) };
- // }
- // }
- // else if (_UTF === "array") {
- // Array.forEach(function () {
- // cb.apply(UDE, arguments);
- // });
- // }
- // }
- // return this;
- // },
- // //未使用
- // max: function (UCE, UTI, UDE) {//获取最大
- // maxAndmin(UDE || this.Value, UCE, UTI, "max");
- // },
- // min: function () {//获取最小
- // maxAndmin(UDE || this.Value, UCE, UTI, "min");
- // },
- // object: function (UCE, UDE) {//把数组转化成object
- // var i, _USE = {}; UDE = UDE || this.Value;
- // for (i = 0; i < UCE.length; i++) {
- // return _USE[UCE[i]] = UDE[i];
- // }
- // return _USE;
- // },
- // countBy: function (UFE, UDE) { //统计使用
- // UDE = UDE || this.Value;
- // var i, _UTF,
- // _USE = {},
- // _UTP = U.UF.C.getType(UDE);
- // if (_UTP == "array") {
- // for (i = 0; i < UDE.length; i++) {
- // _USE[UFE(UDE[i])] = (_USE[UFE(UDE[i])] || 0) + 1;
- // }
- // }
- // else {
- // throw new Error(UDE + " is not an Array");
- // }
- // },
- // where: function (UCE, UDE) { //获取制定的值
- // var i = 0, _USE = []; UDE = UDE || this.Value;
- // while (i++ < _UDE.length) {
- // (this.ifExists(UCE, UDE)) && (_USE.push(UDE[i]));
- // }
- // return _USE;
- // },
- // count: function () {//统计返回的数
- // return this.Value.length;
- // },
- // distinct: function () {//去除重复的数据
- // },
- // find: function () { //模拟数据库查询
- // },
- // each: function () { },
- // has: function (UCE, UDE) {
- // UDE = UDE || this.Value; var i;
- // if (typeof UCE == "string") {
- // if (UCE in UDE && UDE.hasOwnProperty(UCE)) {
- // return true;
- // }
- // }
- // else {
- // for (i in UCE) {
- // if (!(i in UDE && UDE.hasOwnProperty(i))) {
- // return false;
- // }
- // } return true;
- // } return false;
- // },
- // range: function (US, UE, UT) { //产生带编号的数组
- // var _UDE = [],
- // i = US || 0,
- // _UL = (UE - US);
- // UT = UT || (UE - US) > 0 ? 1 : -1;
- // if (_UL) {
- // _UL = Math.max(Math.ceil(_UL /= UT), 0);
- // for (i = 0; i < _UL; i++) {
- // US += UT; _UDE.push(US);
- // }
- // }
- // return _UDE;
- // },
- // isEqual: function (UCE, UDE) { //两个值深度比较
- // UDE = UDE || this.Value;
- // var i,
- // _UTP = U.UF.C.getType(UDE),
- // _UFE = Object.prototype.toString.call;
- // if (_UFE(UDE) === _UFE(UCE)) {
- // if (_UTP == "object") {
- // return (this.ifExists(UCE, UDE) && this.IsTF(UDE, UCE));
- // } //对象判断
- // else if (_UTP == "array" && UDE.length == UCE.length) {
- // i = UDE.length;
- // while (i--) {
- // if (!this.isEqual(UDE[i], UCE[i])) {
- // return false;
- // }
- // }
- // } //数组判断
- // return true;
- // }
- // return false;
- // },
- // isMatch: function (UCE, UDE) { //判断指定的值是否存在
- // UDE = UDE || this.Value;
- // var i,
- // _UTP = U.UF.C.getType(UDE);
- // if (_UTP == "object") {
- // return this.ifExists(UCE);
- // } //集合使用
- // throw new Error("参数必须为对象");
- // }
- // }
- // _UME.IsTF = _UME.ifExists; //重载
- // _UME.init.prototype = _UME;
- // return _UFE; //返回的初始化方法,所以会自动执行java中的构造函数。
- //}
- //#ednregion
- /** #error
- * 当你点击enter键时触发的函数 待删除
- *
- * @param {object} resize对象
- */
- //U.UF.C.returnkeylogin = function (UEL, fun) {
- // var i; //循环初始化
- // if (event.keyCode == 13 || event.keyCode == 10) {
- // if (fun) {//执行函数
- // U.UF.C.apply(UEL || this, fun)();
- // }
- // else if (UEL) {//元素触发使用
- // for (i = 0; i < UEL.length; i++) {
- // UEL[i]["obj"][UEL[i]["event"]]();
- // }
- // }
- // U.UF.EV.stopDefault(); //阻止浏览器默认事件
- // }
- //}
- /**
- * 判断字符串是否为Guid
- *
- * @param {string} 需要判断的字符串
- * @return {boolean} 是否为guid
- */
- U.UF.Ut.isGuid = function (UST) {
- return Guid.IsGuid(UST);
- }
- /**
- * 是否参与for in循环的对象
- *
- * @param {object} 判断是否允许参加在for循环里
- * @return {boolean} 允许for in
- */
- U.UF.Ut.isForObj = function (UDE) {
- var i,
- _ = ["isArray", "isFunction", "isObject"]; //三种可参与for in的
- for (i = 0; i < _.length; i++) {
- if (U.UF.Ut[_[i]](UDE)) {
- return _[i].substr(2);
- }
- }
- return false;
- }
- /**
- * 判断对象是否为hemlcontrol
- *
- * @param {element} 元素
- * @return {boolean} 判断是否为正常元素
- */
- U.UF.Ut.isHtmlElement = function (el) {
- return el.nodeType != null || el == window || el == document || el.frames != null;
- }
- /**
- * 此函数代替U.Json中的Add方法,以避免调试难调,速度降低的问题。
- * @param {object 、 array} 自定义变量或者Array,Object等系统变量,
- * @param {object} 属性的集合,形如:{ "domain": "1473.cn", "SystemId": 0}
- */
- U.UF.Ut.AddProperty = function (UDE, UAE) {
- //判断是集合或者集合数组,分别调用上2个函数。
- Array.isArray(UDE) ? U.UF.Ut.AddArr(UDE, UAE) : U.UF.C.AddObj(UDE, UAE);
- }
- /**
- * 判断值是否等于formdate
- *
- * @param {object} 需要判断的FormData
- * @return {boolean} 是否为FormData
- */
- U.UF.Ut.isFormData = function (obj) {
- return obj.toString() === "[object FormData]";
- }
- /**
- * 判断是否为基础类型
- *
- * @param {object} undefined function string number object
- * @return {boolean} true/false
- */
- U.UF.Ut.isPrimitive = function (UDE) {
- var i, _UCE = ["undefined", "function", "string", "number", "object"];
- return _UCE.some(function (UCE, UIE) {
- return (typeof UDE) == UCE;
- });
- }
- /**
- * 判断是否为传参类
- *
- * @param {object} 函数值
- * @return {boolean} 返回是否为Arguments对象
- */
- U.UF.Ut.isArguments = function (UDE) {
- return (typeof (UDE == "object") && U.Json.has(UDE, "callee"));
- }
- /**
- * 判断object是否是空对象
- *
- * @param {object} 对象值
- * @return {boolean} 是否空对象
- */
- U.UF.Ut.isEmpty = function (UDE) {
- var i,
- _UTF = true;
- for (i in UDE) {
- if (UDE.hasOwnProperty(i)) { _UTF = false; break; }
- }
- return _UTF;
- }
- /**
- * flash加载成功后给flash设置参数
- * @param {element} flash按钮
- * @param {object} flash按钮大小样式 {width:"", height:""}
- * @param {object} flash按钮回调函数 { error : function(e){ console.log("发生错误了") } }
- * @param {string} flash上传的格式设置默认是 * 所有格式都支持
- *
- */
- U.UF.UP.flashUploadInit = function (flashbootom, style, callback, uploadtype) {
- //判断flash是否已经加载好可以设置
- if (flashbootom.SetStage) {
- flashbootom.SetStage(style, callback, uploadtype || "*"); //加载插件初始化
- return true;
- }
- return false;
- }
|