NotUse3.js 80 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847
  1. 
  2. /**
  3. * 创建权限
  4. * @param {array} 磁盘信息
  5. **/
  6. U.MD.DK.RE.newJurisdiction = function (disk) {
  7. return;
  8. // var _operator = disk.operator; //用户操作id
  9. // var _diskuserid = disk.userInfo.UserId; //打开磁盘的用户id
  10. // var _directoryid = disk.directoryid; //目录id
  11. // //判断是否在自己的目录下创建
  12. // if (_operator == _diskuserid) { //在自己的目录下创建
  13. // return true;
  14. // }
  15. // //在别人的目录下创建
  16. // else {
  17. // //在别人ftp下点击创建并在ftp设置允许上传
  18. // if () {
  19. // return true;
  20. // }
  21. // //不是在别人ftp下创建或者ftp设置只允许上传
  22. // else {
  23. // return false;
  24. // }
  25. // }
  26. }
  27. // var _UST,
  28. // _UDID = UDE.UserDirectoryID;
  29. // var i, _UGE, _UDS,
  30. // _UDID = UDE.UserDirectoryID,
  31. // _UDE = U.MD.DK.M.diskOperatingSwitch((userid = userid || US.userInfo.userid));
  32. // if (_UDID == "22222222-2222-2222-2222-222222222222" || _UDID == "11111111-1111-1111-1111-111111111111") {
  33. // U.MD.DK.LL.FCKDXWPDH(_UDID)
  34. // }
  35. // else {
  36. // var _UDJ = U.MD.D.H.ET["Disk"]["SY"],
  37. // _UDPD = U.selectEl(_UDE[2] ? "#U_MD_DK_OCRC" : "#U_MD_DK_RZ", _UDE.formel)[0],
  38. // _UDAD = U.selectEl(UDOD).Child(),
  39. // _UCE = [[_UDJ["DJ"]], [_UDAD[0], true]],
  40. // _UDTD = _UDAD[1],
  41. // _UAE = UDE.Child || U.Json.select(_UDE[0], { "UserDirectoryParentID": userid }),
  42. // _UDS = " U_MD_DK_LTXOSIO", _UDSD = U.selectEl("div", _UDAD[0])[0];
  43. // if (userid != US.userInfo.userid) {
  44. // if (UDE.UserDirectoryID == US.userInfo) {
  45. // _UST = "他人群文件无法查看";
  46. // }
  47. // else if (UDE.UserDirectoryID == US.PRIVATEFOLDERID) {
  48. // _UST = "他人的私密空间无法查看";
  49. // }
  50. // if (_UST) { U.alert(_UST); return; }
  51. // }
  52. // for (i = 0; i < _UCE.length; i++) {
  53. // if (_UCE[i][0]) { U.selectEl(_UCE[i][0])[_UCE[i][1] ? "addClass" : "removeClass"]("U_MD_DK_LTXOSO") };
  54. // };
  55. // _UDPD.onscroll = null; _UDJ["DJ"] = _UDAD[0];
  56. // if (UDE.Child || _UDID == US.EMPTYGUID || _UDID == userid) { //无需加载
  57. // if (!UTF || !UTF[0]) {
  58. // _UDS = (_UDSD.className.indexOf("U_MD_DK_LTXOSIO") > -1 || (UTF && UTF[3] == "none")) ? ["none", ""] : ((_UDTD && !$(_UDTD).Child().length) && ($(_UDTD).remove(), _UDTD = null), (!_UDTD) && (_UGE = U.Json.select(_UAE, { "filetype": 0 }), _UDTD = U.MD.DK.LL.printLeftTreeDirectory(_UGE, _UDTD, null, userid)), ["block", _UDS]);
  59. // _UDTD.style.display = _UDS[0];
  60. // _UDSD.className = "U_MD_DK_LTXOSI U_Img" + _UDS[1];
  61. // } //导航打印
  62. // if (!UTF || !UTF[1]) {
  63. // if (_UDID == userid) {
  64. // if (userid == US.userInfo.userid) { _UDPD.innerHTML = "", U.MD.DK.VW.XWPDYH(US.friend.group) };
  65. // }
  66. // else if (_UDID == US.EMPTYGUID) {
  67. // U.MD.DK.LL.ZJFWDJ(_UDE, userid, _UDPD);
  68. // }
  69. // else { U.MD.DK.LE.openFileDirectory(UDE, userid); }
  70. // } //文件显示
  71. // }
  72. // else {
  73. // U.MD.DK.LE.getChildsByDirectoryId(userid, UDE, ((!UTF || !UTF[1]) && (_UDPD.innerHTML = "", true)) ? [_UDPD, true] : null, function () { U.MD.DK.LL.leftTreeClick(UDE, UDOD, UTF, userid); });
  74. // } //获取目录
  75. // }
  76. // var i, _UCE, _el, _UDTD, _UDSD, _UDMD,
  77. // _userid = US.userInfo.userid,
  78. // _USE = U.MD.DK.C.getIcon(UDE.UserDirectoryExtendType.toLowerCase()),
  79. // _UTF = "文件" + (UDE.filetype ? "" : "夹"),
  80. // _diskinfo = US.disk.UserDisk; UDE = UDE || U.Json.select(_diskinfo[0], { "UserDirectoryID": UDID }, null, 1)[0];
  81. // _UCE; //= U.UF.UP.IsDF(UDE.UserDirectoryExtendType)[0]
  82. // _el = $$("div", { "className": "U_MD_DK_SX" }); //$$("div", { "className": "U_MD_DK_SXT", "innerHTML": _UTF + "属性:" }, _el);
  83. // _UDTD = $$("div", { "className": "U_MD_DK_SXC" }, _el);
  84. // _UDSD = $$("div", { "className": "U_MD_DK_SXCO" }, _UDTD);
  85. // if (U.UF.UP.isImg(UDE.UserDirectoryExtendType)) {
  86. // $$("img", { "onerror": U.MD.C.imgError,
  87. // "onerror": function () {
  88. // U.MD.C.imgError(1);
  89. // },
  90. // "src": U.MD.C.getHeadImage(UDE.UserDirectoryUrl),
  91. // "className": "U_MD_DK_RT_UDD_DV"
  92. // }, _UDSD);
  93. // } //图片设置
  94. // else {
  95. // $$("div", { "className": "U_MD_DK_L_DiskGE U_MD_DK_SXCOI", "style": { "cssText": _USE[1]} }, _UDSD);
  96. // }
  97. // _UDSD = $$("div", { "className": "U_MD_DK_SXCT" }, _UDTD);
  98. // $$("div", { "className": "U_MD_DK_SXCTO", "style": { "marginTop": "4px" }, "innerHTML": "名称:" + UDE.UserallDirectoryName }, _UDSD);
  99. // if (UDE.filetype) {
  100. // $$("div", {
  101. // "className": "U_MD_DK_SXCTT U_MD_D_YesText",
  102. // "onselectstart": U.UF.EV.stopBubble, "spellcheck": "false",
  103. // "innerHTML": "链接:" + (_USE[0] == "图片文件" ? U.MD.C.getHeadImage(UDE["UserFilesServerName"]) : "http://disk.1473.cn/" + UDE["UserDirectoryID"])
  104. // }, _UDSD);
  105. // }
  106. // else if (UDID != US.FTPFOLDERID && UDE.GroupID == _userid && _userid == _diskinfo[1][2] && UTF) {//ftp上传的设置
  107. // _UDMD = $$("div", { "className": "U_MD_DK_SXCTO" }, _UDSD);
  108. // $$("div", { "innerHTML": "权限选择: ", "className": "U_MD_DK_SXCTOQ" }, _UDMD);
  109. // _UDMD = $$("div", { "className": "U_MD_DK_SXCTOS" }, _UDMD);
  110. // _UDMD = $$("select", {
  111. // "onchange": function () {
  112. // U.MD.DK.RE.setpermissions(this, UDE);
  113. // }
  114. // }, _UDMD); _UDMD.options.length = 3;
  115. // _UCE = ["无限制", "只允许上传", "只允许下载"]; for (i = 0; i < 3; i++) { _UDMD.options[i].text = _UCE[i]; }
  116. // _UCE = UDE.UserDirectoryEncrypt; if (_UCE == "1" || _UCE == "2") { _UDMD.selectedIndex = parseInt(_UCE) };
  117. // }
  118. // $$("div", { "className": "U_MD_DK_SXCTO", "innerHTML": "类型:" + _UTF }, _UDSD);
  119. // $$("div", { "className": "U_MD_DK_SXCTO", "innerHTML": "创建日期:" + U.UF.D.formatDateToArray(UDE.UserDirectoryAddTime) }, _UDSD);
  120. // $$("div", { "className": "U_MD_DK_SXCTO", "innerHTML": "文件大小:" + U.UF.UP.minUnitToMaxUnit(UDE.UserDirectorySize) }, _UDSD);
  121. // return _el;
  122. U.MD.DK.RE.DMB = function (UDE, UAF, UDPD, userid) {
  123. userid = userid || (UDE.UserId || UDE.GroupID) || ((UDE[0]) && (UDE[0].UserId || UDE[0].GroupID)) || US.userInfo.userid; //选择删除文件的用户ID
  124. var i, _UH, _el,
  125. _userid = US.userInfo.userid;
  126. UDE = UDE.length ? UDE : [UDE];
  127. if (U.MD.DK.C.getDirectoryPermissions()[4] || (UDE = U.Json.select(UDE, { "UserId": _userid })).length) { //权限设置
  128. if (UDE.length > 1) {
  129. _el = $$("div", { "style": { "cssText": "float:left;text-align:center;width:100%;padding:5% 0 5% 0;"} });
  130. $$("span", { "style": { "cssText": "font-weight:bold;" }, "innerHTML": "你确定要删除这" + UDE.length + "项吗?" }, _el);
  131. } //多文件删除
  132. else {
  133. _el = U.MD.DK.RE.attributeStyle(null, UDE[0]);
  134. } //单文件处理
  135. U.MD.DK.RE.Prompt("删除文件", _UH, 350, _el, function () {
  136. U.MD.DK.RE.deleteUploadFile(UDE, UAF, userid);
  137. }, UDPD); //创建删除窗口
  138. }
  139. else {
  140. U.alert("拒绝访问");
  141. }
  142. }
  143. /**
  144. * 获取光标选取元素的值
  145. * @param {object} range光标对象
  146. * @param {object} 给指定的光标去
  147. */
  148. //U.UF.E.GetHTML = function (range) {
  149. // var _tempel, _childs,
  150. // _str = "";
  151. // //html5处理内容的形式
  152. // if (range.cloneContents) {
  153. // _tempel = $$("div");
  154. // _tempel.appendChild(range.cloneContents()); //得到
  155. // _childs = _tempel.childNodes; //获取所有的孩子节点
  156. // //循环拼接要获取到的值
  157. // for (i = 0; i < _childs.length; i++) {
  158. // _str += _childs[i].outerHTML ? _childs[i].outerHTML : "<span>" + _childs[i].data + "</span>";
  159. // }
  160. // }
  161. // //ie下获取选中图片的时候的处理
  162. // else if (range.commonParentElement) {
  163. // _str = range.commonParentElement().outerHTML;
  164. // }
  165. // //ie系列获取内容的形式
  166. // else {
  167. // _tempel = $$("div", { "innerHTML": range.htmlText });
  168. // _childs = _tempel.childNodes; //获取所有的孩子节点
  169. // //循环拼接要获取到的值
  170. // for (i = 0; i < _childs.length; i++) {
  171. // _str += _childs[i].outerHTML ? _childs[i].outerHTML : "<span>" + _childs[i].data + "</span>";
  172. // }
  173. // }
  174. // return _str; //返回光标选中元素的值
  175. //}
  176. //#region 编辑区域
  177. ///**
  178. //* 编辑器区域初始化设置全局变量
  179. //*
  180. //* @param {window} window
  181. //* @param {element} 当前编辑框元素
  182. //* @param {object} 编辑传参对象
  183. //-----------[CB] 回调函数
  184. //-----------[TF] 识别id
  185. //*/
  186. //U.UF.E.setVariable = function (id, cursor) {
  187. // var _cursors = U.UF.E.SORange;
  188. // if (id) {
  189. // //设置监视前进后退变化使用 函数有问题以后要修改
  190. // _cursors["OAT"][id] = [{ "OR": new cursor.init(cursor, false), "C": ""}]; //创建前进后退处理
  191. // _cursors["OAT"][id].l = 0; //当前前进后退所在的位置
  192. // _cursors["OE"][id] = cursor; //保存当前光标变量
  193. // }
  194. //}
  195. ///**
  196. //* 初始化编辑区域 判断光标是否存在、创建光标、写入全局光标变量、监听键盘
  197. //*
  198. //* @param {window} window
  199. //* @param {element} 当前编辑框元素
  200. //* @param {object} 编辑传参对象
  201. //-----------[CB] 回调函数
  202. //-----------[TF] 识别id
  203. //*/
  204. //U.UF.E.GetSelectionRange = function (win, el, obj) {
  205. // try {
  206. // var _id = obj["TF"], //对该光标的唯一标识
  207. // _cursors = U.UF.E.SORange, //所有使用编辑光标
  208. // _cursor = _cursors["OE"][_id]; //获取已经创建的光标功能区
  209. // //已经创建直接刷新光标
  210. // if (_id && _cursor) {
  211. // //_cursor = _cursor.setVariable(win, win.document, el, obj); //光标存在,把光标的变量重新赋值
  212. // _cursor.CreateR(); //重新创建光标
  213. // }
  214. // else { //创建一个新的光标控制
  215. // _cursor = new U.UF.E.SelectionRange(win, win.document, el, obj).CreateR(true); //创建光标
  216. // //设置光标的全局变量
  217. // U.UF.E.setVariable(_id, _cursor); //全局变量初始化
  218. // //把键盘事件和光标一起绑定,因为要使用光标的地方全部都要监控键盘输入输出,所以绑定在一起,如果有机会,可以独立。
  219. // //事件监视使用 处理页面在选择 输入 点击的时候的处理
  220. // U.UF.E.KeyboardBinding(_cursor.form, _cursor); //键盘绑定处理
  221. // }
  222. // return _cursor;
  223. // }
  224. // catch (e) { return false; }
  225. //}
  226. ///**
  227. //* 键盘绑定处理
  228. //*
  229. //* @param {element} window
  230. //* @param {U.UF.E.SelectionRange} 光标对象
  231. //*/
  232. //U.UF.E.KeyboardBinding = function (el, cursor) {
  233. // U.selectEl(el).bind({
  234. // "keydown": function () {
  235. // cursor.GetKE();
  236. // }, //键盘点击
  237. // "keyup": function () {
  238. // cursor.CLKU();
  239. // }, //键盘结束处理
  240. // "copy": function () {
  241. // cursor.Copy();
  242. // }, //键盘结束处理
  243. // "paste": function () {
  244. // cursor.Paste();
  245. // }, //键盘结束处理
  246. // "cut": function () {
  247. // cursor.Cut();
  248. // }, //键盘结束处理
  249. // //selectstart: U.UF.C.apply(_URE, _URE.selectAll), //页面选择处理函数
  250. // "click": function () {
  251. // cursor.CLMU();
  252. // } //点击处理
  253. // });
  254. //}
  255. ///**
  256. //* 初始化编辑区域 光标的前进后退有问题 需要用其他的解决方案
  257. //*
  258. //* @param {window} 触发的域
  259. //* @param {document} 触发的域下的document
  260. //* @param {element} 当前编辑元素
  261. //* @param {object} 传参
  262. //-----------[CB] 回调函数
  263. //-----------[TF] 识别id
  264. //* @param {element} 上级不变的元素
  265. //*/
  266. //U.UF.E.SelectionRange = function (UW, UD, UDOD, UDE) {
  267. // this.setVariable(UW, UD, UDOD, UDE);
  268. //}
  269. /////**
  270. ////* 获取可编辑的元素
  271. ////*
  272. ////* @param {window} 触发的域
  273. ////*/
  274. ////U.UF.E.SelectionRange.GetEditElement = function () {
  275. //// //获取可编辑对象
  276. //// while (_UCE && ((_UTF = _UCE.tagName.toLocaleLowerCase()) == "p" || _UCE.contentEditable != "true") && _UTF != "body") {
  277. //// _UCE = _UCE.parentNode;
  278. //// }
  279. //// this.form = _UCE; //设置可编辑区域值
  280. ////}
  281. ////使用方法集
  282. //U.UF.E.SORange = U.UF.E.SelectionRange.prototype = {
  283. // OAT: {}, //前进后退使用集
  284. // OE: {}, //记录创建光标值
  285. // setVariable: function (UW, UD, UDOD, UDE) {
  286. // this.CW = UW; //编辑的windows层次
  287. // this.CD = UD; //编辑的document
  288. // this.SO = UDOD || this.Parent(); //编辑区域
  289. // this.form = U.selectEl(UDOD).Parent({ "contentEditable": "true" }); //编辑区域的父亲
  290. // this.CB = UDE["CB"]; //编辑的回调函数
  291. // this.TF = UDE["TF"]; //创建光标的唯一识别码
  292. // this.TIM = [];
  293. // this.S = null;
  294. // this.R = null;
  295. // this.J = null;
  296. // this.TR = null;
  297. // this.BCB = null;
  298. // this.FCB = null;
  299. // this.Dectect = U.UF.E.codeDetect();
  300. // this.CTH = "";
  301. // },
  302. // /**
  303. // * 创建一个光标记载查看
  304. // *
  305. // * @param {boolean} 创建对象时候时候聚焦对象
  306. // */
  307. // CreateR: function (UTF) {
  308. // // U.UF.C.AddObj(this, { SO: this.SO || this.Parent(), form: this.SO }); //设置当前元素和上级元素
  309. // //变量定义
  310. // var _b,
  311. // _win = this.CW, //当前域
  312. // _doc = this.CD; //域下的document对象
  313. // //设置加载对象
  314. // try {
  315. // if (_win.getSelection) { //html5
  316. // this.S = _win.getSelection();
  317. // this.TR = _doc.createRange();
  318. // if (UTF !== false && this.SO) { //聚焦到制定的位置
  319. // if (this.SO.focus && (!this.S.rangeCount || !U.UF.EL.isChild(this.form, this.Parent(this.S.getRangeAt(0))))) { //判断对象是否在元素内
  320. // this.SO.focus(); //当前对象聚焦
  321. // this.QX(this.getLen(this.SO), this.getLen(this.SO), this.SO); //设置对象在当前位置
  322. // this.S = _win.getSelection(); //设置选择区对象
  323. // }
  324. // }
  325. // this.R = this.S.rangeCount ? this.S.getRangeAt(0) : this.R || _doc.createRange(); //选取对象
  326. // }
  327. // else { //老ie
  328. // this.S = _doc.selection; //选取对象
  329. // this.R = _doc.selection.createRange(); //光标对象
  330. // this.TR = document.body.createTextRange(); //输入光标对象
  331. // if ((_UTF = (UTF !== false && this.SO && !U.UF.EL.isChild(this.form, this.Parent(this.R)))) || UTF) { //需要插入光标
  332. // if (_UTF) { //是否聚焦到指定位置中
  333. // this.R = this.QX(this.getLen(this.SO), this.getLen(this.SO), this.SO) || this.R; //设置选取位置
  334. // }
  335. // else { //当前元素聚焦
  336. // this.SO.focus();
  337. // this.Replace(""); //写入光标
  338. // }
  339. // this.S = _doc.selection; //插入光标
  340. // }
  341. // }
  342. // } catch (e) { }
  343. // return this;
  344. // },
  345. // /**
  346. // * 初始化编辑区域
  347. // *
  348. // * @param {object} 编辑对象
  349. // -----------[CW] 当前域
  350. // -----------[CD] 当前域下的doc
  351. // -----------[SO] 对象
  352. // -----------[{}]
  353. // -------[TF] 识别id
  354. // -------[CB] 回调函数
  355. // -----------[form] 编辑的上级元素
  356. // * @param {boolean} 变化的数组 实现数组 0 、 1 切换
  357. // */
  358. // init: function (URE, UTF) { //创建光标监视区域
  359. // this.setVariable(URE["CW"], URE["CD"], URE["SO"], { "TF": URE["TF"], "CB": URE["CB"] }, URE["form"])
  360. // this.CreateR(UTF);
  361. // },
  362. // //#region 获取指定编辑元素
  363. // /**
  364. // * 初始化编辑区域
  365. // *
  366. // * @param {object} 光标对象
  367. // * @param {document} 是否连text也获取
  368. // */
  369. // Parent: function (UDR, UTF, NT) { //获取当前光标所在的区域
  370. // if (UDR = UDR || this.R) { //光标存在使用
  371. // if (UDR.parentElement || UDR.commonParentElement) { //老IE获取
  372. // return (UDR.parentElement || UDR.commonParentElement)(); //上级元素 选择元素区域
  373. // }
  374. // else { //统一使用
  375. // var _el = UDR.commonAncestorContainer;
  376. // if (NT) {
  377. // return UDR.endContainer.parentElement;
  378. // }
  379. // return ((_el.nodeName == "#text" && UTF) ? _el.parentNode : _el);
  380. // }
  381. // }
  382. // },
  383. // /**
  384. // * 获取当前选中的元素
  385. // */
  386. // Element: function (UDR) {
  387. // if (UDR = UDR || this.R) { //光标存在使用
  388. // if (UDR.parentElement || UDR.commonParentElement) { //老IE获取
  389. // return (UDR.parentElement || UDR.commonParentElement)();
  390. // }
  391. // else { //统一使用
  392. // return UDR.commonAncestorContainer;
  393. // }
  394. // }
  395. // },
  396. // /**
  397. // * 获取父亲层
  398. // *
  399. // * @param {object} 光标对象
  400. // * @param {document} 是否连text也获取
  401. // */
  402. // IParent: function (UTH, UDR) {
  403. // UTH = (UTH === void 0) ? this.GetSelectedHtml() : UTH; //选中的蚊子
  404. // var _UDPD,
  405. // _el = this.Parent(UDR),
  406. // _UDTD = $$("div", { "innerHTML": UTH });
  407. // while (_el && _el.innerText && (_UDTD.innerText == _el.innerText) && (_el != this.form) && (_UDPD = _el)) {
  408. // _el = _el.parentNode;
  409. // }
  410. // return _UDPD;
  411. // },
  412. // //#endregion
  413. // /**
  414. // * 文字替换 同时也是插入文字的方法 这里用在 设置文字大小 字号等..
  415. // *
  416. // * @param {string} 需要插入或者替换的文字
  417. // * @param {object} range光标对象
  418. // * @param {boolean} 是否聚焦到最后
  419. // * @return {object} 光标编辑对象
  420. // */
  421. // Replace: function (UTS, URD, UTF) { //光标选区文字替换
  422. // var i, _userid, _el, _UDCD, _UDTD, _UDSD, _UDE, _UTF,
  423. // _UST = "",
  424. // _UTH = UTS == null ? UTS : (UTS.outerHTML || UTS); //需要插入或者替换的文字
  425. // URD = URD || this.R; //光标对象
  426. // if (URD && UTS != null) { //判断是否具有光标和替换的文字7
  427. // _UDE = [];
  428. // _el = this.Parent(URD); //获取上级元素
  429. // _userid = "R" + Guid.newGuid();
  430. // _UDTD = $$("span",
  431. // {
  432. // "id": _userid,
  433. // "innerHTML": _UTH
  434. // }); //生成需要写入的数据元素
  435. // _UTF = this.GetSelectedText(); //当前需要替换的文字
  436. // if (_el != document) { //判断处理的编辑区域是否在原来的编辑框里 U.UF.EL.isChild(this.form, _el) &&
  437. // if (window.getSelection) { //html5
  438. // _UDTD = URD.createCont
  439. //...........................extualFragment(_UTH); //创建选取
  440. // if (_el.innerText == this.GetSelectedText() && _el.innerText) { URD.selectNodeContents(_el) }; //文字聚焦到当前选取中
  441. // URD.deleteContents(); //移除文字
  442. // this.S.removeAllRanges(); //移除选取
  443. // // if (_UDTD.children[0]) {
  444. // // URD.selectNodeContents(_UDTD.children[0])
  445. // // }
  446. // URD.insertNode(_UDTD); //插入选择的蚊子
  447. // // if ($("#" + _userid).Child()[0]) {
  448. // // URD.selectNodeContents($("#" + _userid).Child()[0]);
  449. // // U.selectEl("#" + _userid)[0].outerHTML = U.selectEl("#" + _userid)[0].innerHTML;
  450. // // }
  451. // if (UTF) {
  452. // URD.collapse(false);
  453. // }
  454. // this.S.addRange(URD); //把替换的文章添加到当前指定的选取中
  455. // }
  456. // else { //老IE兼容
  457. // if (!_UDTD.innerText && !$("div", _UDTD).length && !$("div", this.form).length) { //无输入的内容 直接新建换行内容符号 div
  458. // this.SL($$("div", {}, this.form)); //添加输入的div
  459. // _UST = _UDTD.innerHTML; //设置使用的值
  460. // }
  461. // else { //获取需要插入的内容
  462. // _UST = (_UDTD.innerHTML && !UTF) ? _UDTD.outerHTML : _UDTD.innerHTML;
  463. // }
  464. // URD.select(); //选取聚焦
  465. // URD.pasteHTML(""); //添加选取文字
  466. // URD.pasteHTML(_UST); //添加选取文字
  467. // if (UTF || !_UDTD.innerHTML) { URD.collapse(false); } //聚焦到最后
  468. // else { //选取聚焦
  469. // _UDTD = U.selectEl("span", this.Parent())[_UDTD.id]; //选择元素
  470. // _UDTD.outerHTML = _UDTD.innerHTML; //替换焦点
  471. // this.R.select(); //元素聚焦
  472. // }
  473. // }
  474. // this.CreateR(); //选择成功后 重新生成选取 光标
  475. // //U.UF.C.AddObj(this, { "SO": this.Parent(), "TR": URD }); //设置对象和光标
  476. // }
  477. // }
  478. // return this;
  479. // },
  480. // //#region 元素选择选区处理
  481. // /**
  482. // * 指定的位置创建光标选区
  483. // *
  484. // * @param {number} 文字插入到指定位置
  485. // * @param {number} range光标对象
  486. // * @param {element} 是否聚焦到最后
  487. // * @return {object} 光标编辑对象
  488. // */
  489. // QX: function (US, UE, UDOD) { //
  490. // try {
  491. // var _UOE, _UTE,
  492. // _UD = this.CD; //使用域下的document
  493. // UDOD = UDOD || this.Parent(); //获取元素的上一级
  494. // if (window.getSelection) { //Html5
  495. // this.S = (this.S || this.CW.getSelection());
  496. // if (!this.S.rangeCount) {
  497. // this.CW.focus(), UDOD.focus(),
  498. // this.R = this.S.getRangeAt(0)
  499. // }; //获取选区
  500. // if (this.R.commonAncestorContainer != document) { //指定的位置可编辑可聚焦
  501. // _UOE = document.createRange();
  502. // _UOE.selectNode((UDOD)); //聚焦制定的位置
  503. // US = US == null ? _UOE.startOffset : US == -1 ? _UOE.endOffset : US;
  504. // UE = UE == null ? _UOE.endOffset : UE == -1 ? _UOE.endOffset : UE; //获取位置
  505. // try {
  506. // _UOE.setStart((UDOD || this.R.startContainer), US);
  507. // _UOE.setEnd((UDOD || this.R.endContainer), UE);
  508. // }
  509. // catch (e) {
  510. // _UOE.setStart(this.R.startContainer, US);
  511. // _UOE.setEnd(this.R.endContainer, UE);
  512. // }
  513. // this.S.removeAllRanges();
  514. // this.S.addRange(_UOE); //设置位置
  515. // }
  516. // }
  517. // else { //老IE使用
  518. // if (U.UF.C.isNumber(US)) {
  519. // _UOE = _UD.body.createTextRange();
  520. // _UTE = _UD.body.createTextRange();
  521. // _UOE.moveToElementText(UDOD);
  522. // if (U.UF.C.isNumber(US)) { _UOE.moveStart("character", US), _UTE.moveToElementText(UDOD), _UTE.moveStart("character", UE), _UOE.setEndPoint("EndToStart", _UTE) };
  523. // if (US !== UE) { _UOE.select() };
  524. // }
  525. // else {
  526. // this.R.select();
  527. // }
  528. // }
  529. // return _UOE;
  530. // }
  531. // catch (e) {
  532. // return false;
  533. // }
  534. // },
  535. // /**
  536. // * 移动光标处理
  537. // *
  538. // * @param {number} 需要移动的范围
  539. // * @return {object} 光标编辑对象
  540. // */
  541. // moveRange: function (US) {
  542. // this.CreateR(false);
  543. // if (window.getSelection) { //Html5
  544. // try {
  545. // this.TR.setStart(this.R.startContainer, this.R.startOffset + US);
  546. // this.TR.setEnd(this.R.endContainer, this.R.endOffset);
  547. // }
  548. // catch (e) { }
  549. // this.S.removeAllRanges();
  550. // this.S.addRange(this.TR); //设置位置
  551. // }
  552. // else { //老IE使用
  553. // this.TR.moveToElementText(this.Parent());
  554. // _UOE.moveStart("character", US);
  555. // }
  556. // this.CreateR();
  557. // },
  558. // /**
  559. // * 选择选中区域元素
  560. // *
  561. // */
  562. // GetSE: function () {
  563. // if (window.getSelection) { //HTML5
  564. // _USE = this.CW.getSelection();
  565. // _URE = _USE.rangeCount ? _USE.getRangeAt(0) : this.R;
  566. // if (UDR) { _URE.setStart(UDR.endContainer, UDR.endOffset) };
  567. // }
  568. // else {//老IE兼容
  569. // _USE = document.selection;
  570. // _URE = document.selection.createRange();
  571. // if (UDR) { _URE.setEndPoint("EndToEnd", UDR) };
  572. // }
  573. // },
  574. // /**
  575. // * 设定元素为选择元素
  576. // *
  577. // * @param {element} 文字插入到指定位置
  578. // * @param {object} range光标对象
  579. // * @return {object} 光标编辑对象
  580. // */
  581. // SL: function (UDOD, UDR) {
  582. // UDOD = UDOD || this.SO;
  583. // if (window.getSelection) { //html5选择
  584. // if (!UDR) { UDR = document.createRange() };
  585. // UDR.selectNodeContents(UDOD);
  586. // this.S = this.S || this.CW.getSelection();
  587. // this.S.removeAllRanges();
  588. // this.S.addRange(UDR);
  589. // this.R = UDR;
  590. // }
  591. // else { //老IE选择元素
  592. // if (!UDR) { UDR = document.body.createTextRange(), UDR.moveToElementText(UDOD) };
  593. // UDR.select();
  594. // }
  595. // // (!UDR) && (UDR = document.body.createTextRange(), UDR.moveToElementText(UDOD)); UDR.collapse(false); UDR.select();
  596. // return this;
  597. // },
  598. // //#endregion
  599. // //#region 获取文字
  600. // /**
  601. // * 获取当前选区的html
  602. // *
  603. // * @param {object} range对象
  604. // */
  605. // GetSelectedHtml: function (UDR) {
  606. // if ((UDR = UDR || this.R)) {
  607. // var i, _UDAD, _UDCD, _URE, UST = "",
  608. // _UIE = 1;
  609. // if (UDR.cloneContents) { //判断是否
  610. // var _el = $$("div");
  611. // _el.appendChild(UDR.cloneContents());
  612. // UST = _el.innerHTML;
  613. // _UDCD = U.selectEl($$("div",
  614. // {
  615. // "innerHTML": UST
  616. // })).Nodes();
  617. // UST = "";
  618. // for (i = 0; i < _UDCD.length; i++) {
  619. // UST += _UDCD[i].outerHTML ? _UDCD[i].outerHTML : "<span>" + _UDCD[i].data + "</span>";
  620. // }
  621. // }
  622. // else if (UDR.commonParentElement) {
  623. // UST = UDR.commonParentElement();
  624. // UST = UST.outerHTML || UST.innerHTML || UST.value || "";
  625. // }
  626. // else {
  627. // UST = UDR.htmlText;
  628. // _UDAD = $$("div",
  629. // {
  630. // "innerHTML": UDR.htmlText
  631. // }).childNodes;
  632. // if (_UDAD.length) {
  633. // UST = ""; _URE = UDR.duplicate();
  634. // _URE.moveStart("character", -1);
  635. // _UDCD = U.selectEl($$("div",
  636. // {
  637. // "innerHTML": _URE.htmlText
  638. // })).Nodes();
  639. // if ((_UDCD.length == _UDAD.length && _UDAD[0].outerHTML == _UDCD[0].outerHTML) || (_UDCD.length != _UDAD.length && _URE.htmlText != UDR.htmlText)) {
  640. // UST = $$("div",
  641. // {
  642. // "innerHTML": _UDAD[0].outerHTML || _UDAD[0].nodeValue || _UDAD[0].data || _UDAD[0].text
  643. // }).innerHTML;
  644. // }
  645. // else {
  646. // UST = ($($$("div", {
  647. // "innerHTML": _UDAD[0].innerHTML
  648. // })).Child().length ? _UDAD[0].innerHTML : (_UDAD[0].innerHTML || _UDAD[0].nodeValue || _UDAD[0].data || _UDAD[0].text ? $$("span", { "innerHTML": _UDAD[0].innerHTML || _UDAD[0].nodeValue || _UDAD[0].data || _UDAD[0].text }).outerHTML : ""));
  649. // }
  650. // if (_UDAD.length > 1) {
  651. // for (i = 1; i < _UDAD.length - 1; i++) {
  652. // UST += _UDAD[i].outerHTML || _UDAD[i].nodeValue || _UDAD[i].data || _UDAD[i].text;
  653. // }
  654. // _URE = UDR.duplicate(); _URE.moveEnd("character", 1);
  655. // _UDCD = U.selectEl($$("div",
  656. // {
  657. // "innerHTML": _URE.htmlText
  658. // })).Child();
  659. // if ((_UDCD.length == _UDAD.length && _UDAD[_UDAD.length - 1].outerHTML == _UDCD[_UDCD.length - 1].outerHTML) || (_UDCD.length != _UDAD.length && _URE.htmlText != UDR.htmlText)) {
  660. // UST += $$("div",
  661. // {
  662. // "innerHTML": _UDAD[_UDAD.length - 1].outerHTML || _UDAD[_UDAD.length - 1].nodeValue || _UDAD[_UDAD.length - 1].data || _UDAD[_UDAD.length - 1].text
  663. // }).innerHTML;
  664. // }
  665. // else {
  666. // UST += ($($$("div",
  667. // {
  668. // "innerHTML": _UDAD[_UDAD.length - 1].innerHTML
  669. // })).Child().length ? _UDAD[_UDAD.length - 1].innerHTML : _UDAD[_UDAD.length - 1].innerHTML || _UDAD[_UDAD.length - 1].nodeValue || _UDAD[_UDAD.length - 1].data || _UDAD[_UDAD.length - 1].text ? $$("span", { "innerHTML": _UDAD[_UDAD.length - 1].innerHTML || _UDAD[_UDAD.length - 1].nodeValue || _UDAD[_UDAD.length - 1].data || _UDAD[_UDAD.length - 1].text }).outerHTML : "");
  670. // }
  671. // }
  672. // }
  673. // }
  674. // return UST;
  675. // }
  676. // },
  677. // /**
  678. // * 设定元素为选择元素
  679. // *
  680. // * @param {element} 获取当前光标选区的text
  681. // */
  682. // GetSelectedText: function (UDR) {
  683. // return (UDR = UDR || this.R) == null || UDR.add ? null : UDR.text != undefined ? UDR.text : (this.S.toString()); //全兼容的获取
  684. // },
  685. // //#endregion
  686. // //#region 键盘操作处理
  687. // /**
  688. // * 设定元素为选择元素
  689. // *
  690. // * @param {string}
  691. // */
  692. // GetKE: function (UTF) { //输入处理
  693. // var i, _UCE, _UDE, _UKE, _UL, _UDSD,
  694. // _UTP = this.TF;
  695. // UTF = UTF && U.UF.C.isString(UTF) ? UTF : this.Dectect.getValue(); //获取键盘的值
  696. // switch (UTF) {
  697. // case "redo": //前进
  698. // // U.UF.EV.stopDefault();
  699. // // _UDE = this.OAT[_UTP];
  700. // // _UL = _UDE.l;
  701. // // _UKE = _UDE[_UL]; //使用值
  702. // // for (i = _UL; i < _UDE.length; i++) {
  703. // // if (_UDE[i].C) {
  704. // // _UCE = _UDE[i]; _UDE.l = i; break;
  705. // // }
  706. // // } //获取使用列
  707. // // if (_UCE) {
  708. // // if (!window.getSelection) { //光标位置使用
  709. // // try {
  710. // // _UKE = _UKE.OR.R;
  711. // // if (_UCE.P.boundingLeft || _UCE.P.boundingTop) {
  712. // // _UCE.OR.R.moveToPoint(_UCE.P.boundingLeft, _UCE.P.boundingTop);
  713. // // };
  714. // // }
  715. // // catch (e) {
  716. // // try {
  717. // // if (_UCE.OR.R.boundingTop < _UCE.P.boundingTop) {
  718. // // _UCE.OR.R.moveToPoint(_UKE.boundingLeft + _UKE.boundingWidth - 1, _UKE.boundingTop);
  719. // // }
  720. // // } catch (e) { }
  721. // // }
  722. // // }
  723. // // _UCE.OR.Replace(_UCE.C); _UCE.C = "";
  724. // // }
  725. // break;
  726. // case "undo": //后退
  727. // // (this.TIM[1]) && (this.TIM[1]());
  728. // // _UDE = this.OAT[_UTP];
  729. // // _UL = _UDE.l;
  730. // // _UCE = _UDE[_UL];
  731. // // U.UF.EV.stopDefault();
  732. // // if (!_UCE.OR.GetSelectedText()) {
  733. // // if (_UL > 0) {
  734. // // _UL = (_UDE.l -= 1);
  735. // // _UCE = _UDE[_UL];
  736. // // } else { _UCE = null; }
  737. // // }
  738. // // if (_UCE) {
  739. // // _UCE.C = _UCE.C || _UCE.OR.GetSelectedHtml();
  740. // // _UCE.OR.Replace("");
  741. // // }
  742. // break;
  743. // default:
  744. // // if (U.UF.C.isNumber(UTF[0])) { //是否为数字
  745. // // if (UTF[0] == 9) { //tab处理
  746. // // U.UF.EV.stopDefault();
  747. // // this.CreateR().Replace("&emsp;", null, true); //插入tag值
  748. // // }
  749. // // // else if (!(UTF[1] || UTF[2]) && UTF[4].length < 2) { //需要重新记录
  750. // // // _UDE = this.OAT[_UTP];
  751. // // // if (_UDE.l != _UDE.length - 1) {
  752. // // // _UDE[_UDE.l].C = "";
  753. // // // _UDE.splice(_UDE.l + 1, _UDE.length);
  754. // // // }
  755. // // // else {
  756. // // // this.ADQJ();
  757. // // // }
  758. // // // }
  759. // // else if (!(UTF[1] || UTF[2]) && (UTF[0] == 13 || UTF[0] == 8 || UTF[0] == 3 || (UTF[0] > 32 && UTF[0] < 40) || UTF[0] == 46 || (UTF[0] > 63231 && UTF[0] < 63236) || (UTF[0] > 63272 && UTF[0] < 63278 && UTF[0] != 63274)) && this.TF) { //特殊键处理
  760. // // }
  761. // // }
  762. // break;
  763. // }
  764. // if (this.CB && this.CB(U.UF.C.isString(UTF) ? UTF : UTF[4], [this.Parent()], this, UTF, window) === 1) { //回调设置
  765. // // U.UF.EV.stopDefault();
  766. // }
  767. // },
  768. // /**
  769. // * 键盘输入输出处理
  770. // *
  771. // */
  772. // CLKU: function () {
  773. // var _UDPD = this.form,
  774. // _UTF = this.Dectect.getValue(); //获取键盘属性值
  775. // // //后退键的处理
  776. // // if (_UTF[4] == "Backspace" && !$(_UDPD).Child().length) { } //后退键处理
  777. // // //方向输出键
  778. // // else if (!(_UTF[1] || _UTF[2]) && (_UTF[0] == 13 || _UTF[0] == 8 || _UTF[0] == 3 || (_UTF[0] > 32 && _UTF[0] < 40) || _UTF[0] == 46 || (_UTF[0] > 63231 && _UTF[0] < 63236) || (_UTF[0] > 63272 && _UTF[0] < 63278 && _UTF[0] != 63274))) {
  779. // // this.ADQJS("");
  780. // // }
  781. // //执行回调使用
  782. // if ((this.CB) && (this.CB("UP", [this.Parent()], this, _UTF, window) == 1)) {
  783. // // U.UF.EV.stopDefault();
  784. // }
  785. // //this.CreateR(false); //创建记录
  786. // },
  787. // //#endregion
  788. // /**
  789. // * 点击时候创建光标
  790. // *
  791. // * @param {element} 需要复制到的元素
  792. // */
  793. // CLMU: function () {
  794. // this.ADQJS("");
  795. // },
  796. // //#endregion
  797. // Cut: function () {
  798. // this.CreateR(); //重新记录光标
  799. // this.CTH = this.GetSelectedHtml(); //复制的文字处理
  800. // if (this.CB && this.CB("Cut", [this.Parent()], this, "Cut", window) === 1) { //回调设置
  801. // // U.UF.EV.stopDefault();
  802. // }
  803. // },
  804. // /**
  805. // * 复制
  806. // *
  807. // * @param {string} 需要复制的位置
  808. // */
  809. // Copy: function () { //复制
  810. // this.CreateR(); //重新记录光标
  811. // this.CTH = this.GetSelectedHtml(); //复制的文字处理
  812. // if (this.CB && this.CB("Copy", [this.Parent()], this, "Cut", window) === 1) { //回调设置
  813. // // U.UF.EV.stopDefault();
  814. // }
  815. // },
  816. // /**
  817. // * 粘贴
  818. // *
  819. // * @param {element} 需要粘贴到的元素
  820. // */
  821. // Paste: function (UDOD) { //粘贴
  822. // this.CreateR(); //重新记录光标
  823. // if (this.CB && this.CB("Paste", [this.Parent()], this, "Cut", window) === 1) { //回调设置
  824. // // U.UF.EV.stopDefault();
  825. // }
  826. // // if (this.CTH) {
  827. // // if (UDOD) { //添加到指定的元素
  828. // // UDOD.innerHTML = this.CTH.outerHTML || this.CTH;
  829. // // }
  830. // // else { //添加到指定的位置
  831. // // this.Replace(this.CTH, null, true); this.CLMU();
  832. // // }
  833. // // }
  834. // },
  835. // /**
  836. // * 指定的文字生成写入的样式元素
  837. // *
  838. // * @param {string} 需要写入的文字
  839. // * @param {object} 转化的样式集 {width:100px,height:100px}
  840. // * @return {string} 需要粘贴到的元素
  841. // */
  842. // SetStyle: function (UTH, UDE) { //写入样式生成元素
  843. // var i, _UDAD,
  844. // _UTH = "",
  845. // _el = $$("span",
  846. // {
  847. // "innerHTML": UTH
  848. // });
  849. // this.writeStyle(_el, UDE); //设置样式输出
  850. // return U.selectEl("*", _el).length ? _el.innerHTML : _el.outerHTML; //设置新的样式
  851. // },
  852. // /**
  853. // * 通过元素设置样式
  854. // *
  855. // * @param {string} 需要写入的元素
  856. // * @param {object} 转化的样式集 {width:100px,height:100px}
  857. // * @return {string} 需要粘贴到的元素
  858. // */
  859. // writeStyle: function (UDOD, UDE) { //
  860. // var i, j, _UTF,
  861. // _UKE = {},
  862. // _UCE = {},
  863. // _USE = ["textAlign"], //textAlign 无法设置行内元素 要设置块状元素才可以
  864. // _UDPD = this.Parent(), //上级元素
  865. // _UDAD = U.selectEl(UDOD).Nodes(); //获取所有的子元素
  866. // while (_UDPD.tagName == "SPAN") {
  867. // _UDPD = U.selectEl(_UDPD).Parent();
  868. // }
  869. // //循环需要添加的样式集合
  870. // for (i in UDE) {
  871. // if (UDE.hasOwnProperty(i)) {
  872. // if (_USE.indexOf(U.UF.EL.styleConversion(i)) > -1 ? _UCE : _UKE == _UCE) { //判断样式中是否有行内元素无法设置的样式 如果有就添加到全局设置样式的区域
  873. // _UCE[i] = UDE[i][0] == _UDPD.style[i] ? UDE[i][1] : UDE[i][0];
  874. // }
  875. // else { //可设置样式区域
  876. // _UKE[i] = UDE[i][0];
  877. // if (UDOD.style && UDOD.style[i] == UDE[i][0]) { //判断元素的样式是否已经存在
  878. // _UKE[i] = UDE[i][1];
  879. // }
  880. // else {
  881. // //子元素设置样式
  882. // for (j = 0; j < _UDAD.length; j++) {
  883. // if (_UDAD[j].style && _UDAD[j].style[i] == UDE[i][0]) {
  884. // _UKE[i] = UDE[i][1];
  885. // break;
  886. // }
  887. // }
  888. // }
  889. // }
  890. // }
  891. // }
  892. // //设置只有块状元素才能设置的样式
  893. // if (_UDPD.style) { U.selectEl(_UDPD).addAttrArray({ "style": _UCE }) };
  894. // //所有元素设置指定的样式
  895. // U.selectEl(UDOD).addAttrArray({ "style": _UKE });
  896. // U.selectEl("*", UDOD).addAttrArray({ "style": _UKE });
  897. // },
  898. // /**
  899. // * 获取光标据制定元素所在的位置
  900. // *
  901. // * @param {element} 指定的元素
  902. // * @param {boolean} 获取到指定的元素的开头的范围
  903. // * @return {number} 范围
  904. // */
  905. // GetGBWZ: function (UDOD, UTF) {
  906. // var _USE, _URE, _UDTD;
  907. // if (window.getSelection) {//HTML5
  908. // _USE = this.CW.getSelection();
  909. // _URE = _USE.rangeCount ? _USE.getRangeAt(0) : this.R;
  910. // return UTF ? _URE.startOffset : _URE.endOffset;
  911. // }
  912. // else { //ie
  913. // try {
  914. // UDOD = UDOD || this.Parent();
  915. // _URE = this.QX(0, 0, UDOD);
  916. // _URE.setEndPoint("EndTo" + (UTF ? "Start" : "End"), this.R);
  917. // return (_UDTD = $$("div",
  918. // {
  919. // "innerHTML": _URE.htmlText
  920. // })).innerText.length + ($("img", _UDTD).length);
  921. // } catch (e) { }
  922. // }
  923. // return 0;
  924. // },
  925. // /**
  926. // * 获取光标据制定元素所在的位置
  927. // *
  928. // * @param {element} 指定的元素
  929. // * @param {boolean} 获取到指定的元素的开头的范围
  930. // * @return {number} 范围
  931. // */
  932. // getBoundingClientRect: function () {
  933. // if (window.getSelection) {//HTML5
  934. // return this.R.getBoundingClientRect();
  935. // }
  936. // else {
  937. // return {
  938. // bottom: this.R.P.boundingBottom,
  939. // height: this.R.P.boundingHeight,
  940. // left: this.R.P.boundingLeft,
  941. // right: this.R.P.boundingRight,
  942. // top: this.R.P.boundingTop,
  943. // width: 1,
  944. // x: this.R.P.boundingLeft,
  945. // y: this.R.P.boundingTop
  946. // };
  947. // }
  948. // },
  949. // /**
  950. // * 判断是否在相同的范围
  951. // *
  952. // * @param {object} range 光标对象
  953. // * @return {booean} 是否在指定的范围中
  954. // */
  955. // IsP: function (UDR) {
  956. // if (!UDR) { return true; }
  957. // if (window.getSelection) {
  958. // var _UDE = document.getSelection();
  959. // return (!_UDE.rangeCount || ((_UDE = _UDE.getRangeAt(0)) && UDR.endContaine == _UDE.endContaine && UDR.startContaine == _UDE.startContaine && UDR.endOffset == _UDE.endOffset && UDR.startOffset == _UDE.startOffset));
  960. // }
  961. // else {
  962. // try {
  963. // return UDR.isEqual(document.selection.createRange());
  964. // } catch (e) { }
  965. // }
  966. // return false;
  967. // },
  968. // /**
  969. // * 判断元素是否在指定区域
  970. // *
  971. // * @param {object} range 光标对象
  972. // * @return {booean} 是否在指定的范围中
  973. // */
  974. // isE: function (UDOD) {
  975. // if (window.getSelection) { //HTML5
  976. // return this.S.containsNode(UDOD, true);
  977. // }
  978. // else {
  979. // _URE = document.body.createTextRange();
  980. // try {
  981. // _URE.moveToElementText(UDOD);
  982. // return this.R.inRange(_URE);
  983. // }
  984. // catch (e) {
  985. // return false;
  986. // }
  987. // }
  988. // },
  989. // /**
  990. // * 选取元素计算长度
  991. // *
  992. // * @param {object} 元素
  993. // * @return {number} 元素文字的长度
  994. // */
  995. // getLen: function (UDOD) { //
  996. // return U.selectEl("img", UDOD).length + UDOD.innerText.length;
  997. // },
  998. // //#region 前进后退处理区域
  999. // /**
  1000. // * 输入等待添加前进后退
  1001. // *
  1002. // * @param {obnject} U.UF.E.SelectionRange的派生对象
  1003. // * @return {funciotn} 光标记录回调函数
  1004. // */
  1005. // ADQJ: function (UDR) {
  1006. // clearTimeout(this.TIM[0]); //清除等待
  1007. // this.TIM[0] = setTimeout((this.TIM[1] = function () { this.ADQJS("", UDR); }), 500); //等待生成记录
  1008. // return this.TIM[1]; //返回回调
  1009. // },
  1010. // /**
  1011. // * 添加前进后退记录
  1012. // *
  1013. // * @param {string} 前进后退记录的内容
  1014. // * @param {object} U.UF.E.SelectionRange的派生对象
  1015. // */
  1016. // ADQJS: function (UHT, UDR) { //判断添加
  1017. // clearTimeout(this.TIM[0]); //清除等待
  1018. // this.TIM = []; //记录前进后退的对象
  1019. // this.JHGB(UHT, UDR, this); //记录
  1020. // },
  1021. // /**
  1022. // * 记录前进后退(每一次结束自动创建)
  1023. // *
  1024. // * @param {string} 前进后退记录的内容
  1025. // * @param {object} U.UF.E.SelectionRange的派生对象
  1026. // * @param {object} 当前使用的this对象
  1027. // */
  1028. // JHGB: function (UHT, UDR, UE) {
  1029. // var _UTF = this.TF, //标记 识别id
  1030. // _UDE = this.OAT[_UTF], //获取识别id下的光标对象
  1031. // _UKE = this.IsP(_UDE[_UDE.l]["OR"]["R"]); //判断光标是否上次记录的范围
  1032. // if (!_UKE && _UTF) { this.AddHT(UHT, UDR, UE) }; //如果没有记录该光标 记录
  1033. // },
  1034. // /**
  1035. // * 添加前进后退区域 直接传参记录
  1036. // *
  1037. // * @param {string} 前进后退记录的内容
  1038. // * @param {object} U.UF.E.SelectionRange的派生对象
  1039. // * @param {object} 当前使用的this对象
  1040. // */
  1041. // AddHT: function (UHT, UDR, UE) {
  1042. // var i, _UTP,
  1043. // _UTF = this.TF, //识别id
  1044. // _UDE = this.OAT[_UTF], //识别id下前进后退所有的对象
  1045. // _UOE = _UDE[_UDE.l]; //当前前进后退所在的对象
  1046. // _UDE.l++; //生成新的对象的位置
  1047. // _UDE.splice(_UDE.l, _UDE.length - _UDE.l, (_UTE = { "OR": new this.init(UE, false), "C": (UHT || "") })); //添加新的前进后退对象
  1048. // if (window.getSelection) { //html5 光标保存
  1049. // _UOE["OR"]["R"].setEnd(_UTE["OR"]["R"].startContainer, _UTE["OR"]["R"].startOffset);
  1050. // }
  1051. // else { //ie位置大小保存
  1052. // _UTE = ["boundingWidth", "offsetLeft", "boundingLeft", "boundingTop", "offsetTop", "boundingHeight"]; //这里为光标的位置记录
  1053. // _UOE.P = {};
  1054. // for (i = 0; i < _UTE.length; i++) { //循环记录光标
  1055. // _UOE.P[_UTE[i]] = _UOE.OR.R[_UTE[i]];
  1056. // }
  1057. // }
  1058. // },
  1059. // /**
  1060. // * 失去焦点的时候保存
  1061. // *
  1062. // * @param {element} 需要粘贴到的元素
  1063. // */
  1064. // Brul: function () {
  1065. // if (this.TIM[1]) { this.TIM[1]() };
  1066. // }
  1067. // //#endregion
  1068. //}
  1069. ////前进后退的处理 需要修改
  1070. //U.UF.E.SORange.init.prototype = U.UF.E.SORange;
  1071. ////前进后退处理函数区域
  1072. ////#region 编辑器提供的接口处理区域
  1073. ///**
  1074. //* 设置选择区域的样式处理
  1075. //*
  1076. //* @param {element} 编辑元素
  1077. //* @param {element} 需要修改的样式集
  1078. //* @param {element} 光标方法集合对象
  1079. //* @param {element} 光标所在的域的识别id
  1080. //* @return {element} 需要粘贴到的元素
  1081. //*/
  1082. //U.UF.E.FontSizeType = function (UDOD, USE, UDE, UTF) {
  1083. // UDE = UDE || U.UF.E.GetSelectionRange(window, UDOD, { "TF": UTF || "QL" }); //获取光标方法集
  1084. // var i, _UFT,
  1085. // _UST = "", //获取设置样式后的html值
  1086. // _UKE = {}, //最终修改样式的值
  1087. // _UDPD = UDE.Parent(), //获取父亲层
  1088. // _UTH = UDE.GetSelectedHtml(); //选择的元素
  1089. // //获取可设置样式的层
  1090. // while (!_UDPD.tagName) {
  1091. // _UDPD = U.selectEl(_UDPD).Parent();
  1092. // }
  1093. // //样式设置
  1094. // for (i in USE) {
  1095. // if (USE.hasOwnProperty(i)) {
  1096. // USE[i] = typeof USE[i] == "object" ? USE[i] : [USE[i], USE[i]];
  1097. // _UKE[i] = USE[i];
  1098. // }
  1099. // }
  1100. // //有选取
  1101. // if (_UTH) {
  1102. // _UST = UDE.SetStyle(_UTH, USE);
  1103. // USE = USE;
  1104. // }
  1105. // else {
  1106. // UDE.writeStyle(UDE.Parent(null, true), USE);
  1107. // }
  1108. // UDE.Replace(_UST, null, _UST ? null : true);
  1109. // return UDE; //生成添加的内容
  1110. //}
  1111. ////#endregion
  1112. //////键盘检查器
  1113. ////U.UF.E.codeDetect = (function () {
  1114. //// var _UKE = { 3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", 19: "Pause",
  1115. //// 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", 36: "Home", 37: "Left",
  1116. //// 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", 46: "del", 48: "0", 49: "1", 50: "2", 51: "3", 52: "4", 53: "5", 54: "6", 55: "7", 56: "8", 57: "9", 59: ";", 65: "A", 66: "B", 67: "C", 68: "D", 69: "E", 70: "F", 71: "G", 72: "H", 73: "I", 74: "J", 75: "K", 76: "L", 77: "M", 78: "N", 79: "O", 80: "P", 81: "Q", 82: "R", 83: "S", 84: "T", 85: "U", 86: "V", 87: "W", 88: "X", 89: "Y", 90: "Z", 91: "Mod", 92: "Mod", 93: "Mod", 107: "=", 109: "-", 112: "F1", 113: "F2", 114: "F3", 115: "F4", 116: "F5", 117: "F6", 118: "F7", 119: "F8", 120: "F9", 121: "F10", 122: "F11", 123: "F12", 127: "del", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\"", 221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63236: "F1", 63237: "F2", 63238: "F3", 63239: "F4", 63240: "F5", 63241: "F6", 63242: "F7", 63243: "F8", 63244: "F9", 63245: "F10", 63246: "F11", 63247: "F12", 63272: "del", 63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"
  1117. //// },
  1118. //// _USE = { "alt": [[37, "goLineStart"], [38, "goDocStart"], [39, "goLineEnd"]], "ctrl": [[65, "selectAll"], [8, "delGroupBefore"], [67, "copy"], [86, "paste"], [68, "deleteLine"], [46, "delGroupAfter"], [40, "goDocEnd"], [63275, "goDocEnd"], [70, "find"], [71, "findNext"], [63273, "goDocStart"], [37, "goGroupLeft"], [39, "goGroupRight"], [83, "save"], [89, "redo"], [90, "undo"], [219, "indentLess"], [221, "indentMore"]], "shift-ctrl": [[70, "replace"], [71, "findPrev"], [82, "replaceAll"], [90, "redo"]] },
  1119. //// _ = function (UDE) { return new _.init(UDE); }; //初始化查看使用
  1120. //// U.UF.C.AddObj(_, _.prototype = {
  1121. //// init: function (UDE) { //初始化检测器
  1122. //// UDE = UDE || {}; U.UF.C.AddObj(this, UDE); (UDE.el) && (this.bind(UDE.el));
  1123. //// },
  1124. //// bind: function (UDOD) { //绑定函数时间
  1125. //// U.selectEl(UDOD).bind({ keydown: function () {
  1126. //// this.down();
  1127. //// }
  1128. //// });
  1129. //// },
  1130. //// down: function () { //键盘事件
  1131. //// if (this.cb) { this.cb.call(this, this.getValue(), this.el) };
  1132. //// },
  1133. //// getValue: function () { //根据输入获取检测器值
  1134. //// var i, j, _UGE, _UCE, e = event, k = e.keyCode; //基础编辑器快捷键
  1135. //// _UGE: for (i in _USE) {
  1136. //// if (_USE.hasOwnProperty(i)) {
  1137. //// _UCE = i.split("-"); for (j = 0; j < _UCE.length; j++) {
  1138. //// if (!e[_UCE[j] + "Key"]) {
  1139. //// continue _UGE;
  1140. //// }
  1141. //// }
  1142. //// for (j = 0; j < _USE[i].length; j++) {
  1143. //// if ((_UCE = _USE[i][j])[0] == k) {
  1144. //// return _UCE[1];
  1145. //// };
  1146. //// }
  1147. //// }
  1148. //// }
  1149. //// return [k, e.altKey, e.ctrlKey, e.shiftKey, _UKE[k] || ""];
  1150. //// },
  1151. //// set: function () { //键盘设置 允许自定义键监视
  1152. //// }
  1153. //// });
  1154. //// _.init.prototype = _; return _;
  1155. ////})()
  1156. // var _dirid, _userid = US.userInfo.userid;
  1157. // if (U.MD.DK.C.getDirectoryPermissions(null, null, UDE)[4]) {//本人才允许重命名
  1158. // UDOD.innerText = "";
  1159. // (_dirid = $$("input", {
  1160. // "ondblclick": U.UF.EV.stopBubble,
  1161. // "onblur": function () {
  1162. // U.MD.DK.RE.detemineReName(this, UDE, UDE.UserId || _userid);
  1163. // },
  1164. // "onclick": U.UF.EV.stopBubble,
  1165. // "className": "U_MD_U_P_C_P_N_I",
  1166. // "value": UDE["UserallDirectoryName"].replace("." + UDE["UserDirectoryExtendType"], "")
  1167. // }, UDOD)).select();
  1168. // _dirid.onkeyup = function () {
  1169. // if (event.keyCode == 13 || event.keyCode == 10) {
  1170. // _dirid.onblur();
  1171. // }
  1172. // }; //回车修改
  1173. // }
  1174. // else {
  1175. // U.alert("拒绝访问");
  1176. // }
  1177. // var _startlineel, //选取的开始行元素 这里的话是div、p标签
  1178. // _endlineel, //选取的结束的行元素 这里的话是div、p标签
  1179. // _nextel, //循环改变样式的下级元素
  1180. // _startel = range.startContainer, //开始元素
  1181. // _endel = range.endContainer, //结束元素
  1182. // _startoffset = range.startOffset, //开始位置
  1183. // _endoffset = range.endOffset; //结束位置
  1184. // //得到选择开始元素的行元素
  1185. // _startlineel = U.UF.E.getLineElement(_startel);
  1186. // //得到选择的结束元素的行元素
  1187. // _endlineel = U.UF.E.getLineElement(_endel);
  1188. // if (_startlineel == _endlineel) {
  1189. // U.UF.E.setRangeStyle(attr, range);
  1190. // }
  1191. // //循环的给每一行的元素处理样式
  1192. // else {
  1193. // _nextel = _startlineel;
  1194. // while () {
  1195. // // var _nowRang =document.createRange();
  1196. // // U.UF.E.setRange(_nextel.firstChild, _nextel.lastChild, 0, _nextel.innerText.length, _nowRang);
  1197. // U.UF.E.modifyContent(attr, range);
  1198. //// _nextel != _endlineel
  1199. //// _nextel = _nextel.nextSibling
  1200. // }
  1201. // }
  1202. //#region 设置文件加密
  1203. //设置文件加密
  1204. U.MD.DK.RE.encryption = function (UDE) {
  1205. var _UKE = U.MD.DK.C.getDirectoryPermissions(null, null, UDE), _diskinfo = US.disk.UserDisk;
  1206. if (_UKE[2][_UKE[2].length - 1].GroupID == null && _UKE[4]) { //判断是否允许修改
  1207. U.MD.DK.RE.SHEW(UDE.UserDirectoryEncrypt ? false : true, UDE.UserDirectoryID, U.selectEl("#U_MD_DK" + (_diskinfo[2] ? "O" : ""), _diskinfo.formel)[0]);
  1208. }
  1209. }
  1210. //加密解密窗体
  1211. U.MD.DK.RE.SHEW = function (UTF, UDID, UDPD) {
  1212. var _el, _UDTD, _UW = 280, _UH = 180;
  1213. if (UTF) {
  1214. _el = $$("div", { "className": "U_MD_DK_JM" });
  1215. _UDTD = $$("div", { "className": "U_MD_DK_JMO" }, _el);
  1216. } else {
  1217. _UDTD = $$("div", { "className": "U_MD_DK_JMA" });
  1218. _UH = 125;
  1219. }
  1220. $$("span", { "className": "U_MD_DK_JMOS", "innerHTML": "输入密码:" }, _UDTD);
  1221. $$("input", { "className": "U_MD_DK_JMOI", "type": "password" }, _UDTD); //密码框
  1222. if (UTF) {
  1223. _UDSD = $$("div", { "className": "U_MD_DK_JMOT" }, _el);
  1224. $$("span", { "className": "U_MD_DK_JMOS", "innerHTML": "确认密码:" }, _UDSD);
  1225. $$("input", { "type": "password", "className": "U_MD_DK_JMOI" }, _UDSD);
  1226. } //加密的框
  1227. U.MD.DK.RE.Prompt("文件夹" + (UTF ? "加密" : "解密"), _UH, _UW, _el || _UDTD, function () { U.MD.DK.RE.ETUE(UTF, UDID); }, UDPD || US.disk.UserDisk[1][3]); //设置
  1228. }
  1229. //加密的接口
  1230. U.MD.DK.RE.ETUE = function (UTF, UDID) {
  1231. var _dirid = U.selectEl("input", this),
  1232. _UM = _dirid[0].value, _UTM = UTF ? _dirid[1].value : _UM;
  1233. if (_UM.isStrNull() && _UM == _UTM) {
  1234. U.A.Request(US.AUTH, [(UTF ? "DirectoryEncrypt" : "DirectoryDecrypt"), UDID, _UM], U.MD.DK.RE.AsynETUE, ["", UTF, UDID]);
  1235. }
  1236. else { U.alert("输入的内容有误"); }
  1237. }
  1238. //加密解密的异步
  1239. U.MD.DK.RE.AsynETUE = function (r) {
  1240. var _context = r.context,
  1241. _UTF = _context[1],
  1242. _dirid = _context[2],
  1243. _UV = _context[3],
  1244. _diskinfo = US.disk.UserDisk,
  1245. _fileinfo = U.Json.select(_diskinfo[0], { "UserDirectoryID": _dirid })[0];
  1246. r = r.value; // _UV = _UV == true ? "" : _UV;
  1247. if (r) {
  1248. if (_fileinfo) {
  1249. _fileinfo.UserDirectoryEncrypt = _UV == null ? r : _UV;
  1250. _fileinfo.UserDirectoryExtendType = _UTF === true ? "folderencrypt" : "folder";
  1251. U.MD.DK.RE.AsynWPWJJM(_fileinfo, _UV);
  1252. } //文件加密异步
  1253. }
  1254. else { U.alert("设置失败"); } //设置权限或者加密解密
  1255. }
  1256. //设置文件加密异步
  1257. U.MD.DK.RE.AsynWPWJJM = function (UDE, UTF) {
  1258. var i,
  1259. _UCE = ["R", "L"],
  1260. _dirid = UDE.UserDirectoryID; UTF = UTF ? ["U_MD_DK_RZOM", "U_MD_DK_LCJ"] : ["U_MD_DK_RZOW", "U_MD_DK_LCW"],
  1261. _diskinfo = US.disk.UserDisk;
  1262. for (i = 0; i < _UCE.length; i++) {
  1263. (_UDCD = U.selectEl("#" + _UCE[i] + _dirid, _diskinfo.formel)[0]);
  1264. if (_UDCD) { U.selectEl("div", _UDCD)[i + 1].className = (i ? "U_MD_DK_LCOI U_MD_DK_LTXOST U_Img " : "U_MD_DK_RZOS U_Img ") + UTF[i] };
  1265. }
  1266. }
  1267. //#endregion
  1268. //链接形式点击查看Word资料,例1: /Controls/WordEditArea.htm?ID=a0373130-be97-db03-4e74-9967c1038d13
  1269. //例2:a0373130-be97-db03-4e74-9967c1038d13.1473.cn
  1270. //例3:短域名 example.1473.cn
  1271. window.onload = function () {
  1272. U.UF.F.clickTopWindow(); //让弹框置顶。
  1273. if (window.print) { //判断是否有右键菜单
  1274. document.oncontextmenu = U.UF.EV.stopDefault; //阻止桌面右键默认菜单
  1275. }
  1276. document.onselectstart = U.UF.C.shieldedSelect; //禁止文本选择处理
  1277. U.UF.EV.addElementEvent("keydown", document, U.UF.C.shieldedBackspace); //禁止浏览器回退
  1278. var _fileid = U.UF.C.queryString("ID"); //获取登录着id
  1279. if (_fileid) {
  1280. parent.U.A.Request(US.AUTH, ["GetFileContent", _fileid], U.MD.O.W.AsynGOF, [[$("body")[0], true]]);
  1281. };
  1282. }
  1283. //获取文件异步
  1284. U.MD.O.W.AsynGOF = function (r, UDOD) {
  1285. var _result = r.value.UsOffice || ""; //或者的作用是:右键新建word,没有保存时给""。
  1286. //设置内容为空。
  1287. //$("body").addAttrArray({ "style": {}, "innerHTML": "" });
  1288. U.UF.C.loadJs(document.body, _result);
  1289. return true;
  1290. }
  1291. //#region
  1292. /**
  1293. * 初始化Word,//创建光标,监控键盘输入(包含粘贴板,回车,删除,分页等系统操作),等。
  1294. *
  1295. * @param {object} 文档信息 或 null
  1296. */
  1297. U.MD.O.W.OLWord = function (fileinfo) {
  1298. var i,
  1299. _content, //word文件内容保存在这里
  1300. _cursor; //光标
  1301. //得到可编辑区域变量
  1302. var _child = U.selectEl("#U_MD_O_W_E_body").Child();
  1303. var _editarea = U.selectEl(_child[_child.length - 1]).Child()[1]; //可编辑区域,是_content的父亲
  1304. //廖泽愈写的,要放到其他位置。视图生成
  1305. // U.MD.O.W.ViewDisplayon(); //视图关闭
  1306. // U.MD.O.W.ViewDisplayc(); //
  1307. //新建文件没有文件内容,所以需要判断,以后可以再考虑。
  1308. if (!fileinfo) {
  1309. _content = _editarea.innerHTML;
  1310. }
  1311. else {
  1312. _content = fileinfo["UsOffice"];
  1313. }
  1314. // U.MD.O.W.AsynGetTemp(_content); //异步加载模板原型
  1315. //默认设置可编辑为true
  1316. U.selectEl(_editarea).addAttrArray({
  1317. "innerHTML": "",
  1318. "contentEditable": "true"
  1319. });
  1320. //得到整理好的内容,以便插入光标在末尾
  1321. _content = U.MD.O.W.lastContent(_editarea, _content);
  1322. //创建光标的地方
  1323. //同时也是出了键盘事件的地方,U.MD.O.W.Keyboard是键盘事件,作为回调函数传递给光标进行处理。
  1324. ////把键盘事件和光标一起绑定,因为要使用光标的地方全部都要监控键盘输入输出,所以绑定在一起,如果有机会,可以独立。
  1325. //监控键盘输入(包含粘贴板,回车,删除,分页等系统操作),等。
  1326. _cursor = U.MD.O.W.T.WFocus(_editarea, _content, U.MD.O.W.Keyboard); //编辑绑定
  1327. // //???????????前面是聚焦还是已经插入光标
  1328. // //找到子元素,实质是向子元素追加光标
  1329. // _editarea = U.selectEl(_editarea).Child();
  1330. // //插入光标到指定位置。
  1331. // _cursor.QX(1, 1, _editarea[_editarea.length - 1]);
  1332. // //保存光标变量。
  1333. // _cursor.CreateR();
  1334. }
  1335. //得到整理好的内容,以便插入光标在末尾
  1336. U.MD.O.W.lastContent = function (_editarea, content) {
  1337. var _tmp;
  1338. var _content = content;
  1339. //如果word有内容,则自动排版分页,目的是得到内容,正常显示,以便创建光标时正常写入,把光标放入最末尾。
  1340. if (_content) {//内容插入
  1341. _tmp = U.selectEl($$("div", { "innerHTML": _content })).Child();
  1342. for (i = 0; i < _tmp.length; i++) {
  1343. if (_tmp[i].className == "U_MD_O_H_body_main_m") {
  1344. _content = "";
  1345. if (!i) {
  1346. _editarea.innerHTML = U.selectEl(_tmp[i]).Child()[1].innerHTML;
  1347. }
  1348. else {
  1349. //这部分处理的是当word编辑器没有内容时的分页,从数据库加载大数据内容时还不能实现,使用U.MD.O.W.PageData做分页处理。
  1350. U.MD.O.W.Page($(_editarea).Parent(), null, U.selectEl(_tmp[i]).Child()[1].innerHTML); //生成下一页
  1351. }
  1352. }
  1353. }
  1354. }
  1355. else { //空文字处理
  1356. _content = "<div><br /></div>"; //追加光标其实是追加到div之间。
  1357. }
  1358. return _content;
  1359. }
  1360. // //数据结构转换
  1361. // //弹出word窗体
  1362. // //创建顶部工具栏
  1363. // //创建顶部菜单
  1364. // //创建word编辑区域,包括创建邀请协作人员,创建编辑历史,创建生成链接.创建热门模板。加载当前word文档的内容。创建光标,监控键盘输入等。
  1365. // //
  1366. // var _el,
  1367. // _UDAD,
  1368. // _UTF,
  1369. // _UDTD,
  1370. // _UAE, //设置变量
  1371. // _UDID = (fileinfo && (fileinfo.UserDirectoryID) || fileinfo) || Guid.newGuid(); //判断是否存在文件
  1372. // //数据结构转换
  1373. // //暂时解决方案,以后会数据结构统一,包括文件夹,文件,好友等数据结构。这个有个权衡:要考虑网络传输数据大小的问题及开发速度的问题。
  1374. // //由于获取首页获取出来的数据结构和在网盘获取出来的数据结构不匹配,所以这里把他传化成网盘的结构,
  1375. // if (fileinfo && fileinfo.UserFilesID) {
  1376. // //通过这个方式重新把首页数据转化成云盘的格式
  1377. // fileinfo = new U.MD.DK.M.entity(fileinfo.UserFilesID, fileinfo.UserFilesSize, fileinfo.UserDirectoryID, fileinfo.UserFilesName, fileinfo.UserFilesName, fileinfo.UserFilesExtendName,
  1378. // fileinfo.UserFilesServerName, fileinfo.UserFilesModifyTime, fileinfo.UseFilesServerThumbnailName, 0, fileinfo.UserFilesModifyTime, fileinfo.UserDirectoryEncrypt, 1, "", fileinfo.UserDirectoryEncrypt,
  1379. // fileinfo.UsOffice, fileinfo.UserId, "", "", "");
  1380. // }
  1381. // //弹出word窗体,这个地方的判断到底是做什么的?分析是不是置顶,分析是不是打开同一个文件。?
  1382. // if (!(_el = U.selectEl("#UD_Excel" + _UDID)[0])) { //生成office
  1383. // //Word内容区域,由iframe构成。
  1384. // _el = U.selectEl("#UD_Excel").clone(true); //克隆word编辑器 包含头部菜单和功能及word编辑区域
  1385. // _el[0].id = ""; //清除id
  1386. // //初始化菜单栏,包含顶部的菜单还有编辑功能
  1387. // U.MD.O.E.T.Exceltools(userinfo, "Excel", fileinfo, _el[0]);
  1388. // //创建窗体 设置属性
  1389. // _UAE = new U.UF.UI.form("",
  1390. // _el[0],
  1391. // {
  1392. // "resize": function () {
  1393. // U.MD.O.E.T.WETZ(_el[0], "Excel");
  1394. // },
  1395. // "id": "UD_Excel" + _UDID,
  1396. // "style":
  1397. // {
  1398. // "width": "90%",
  1399. // "height": "90%"
  1400. // }
  1401. // },
  1402. // {}, { "style": { "height": "40px", "padding": "5px 0"} });
  1403. // //创建顶部菜单
  1404. // U.selectEl(_UAE.header).addAttrArray({
  1405. // "className": ""
  1406. // }).append(_el.Child()[0]); //将Ifrmae添加到指定位置
  1407. // //追加office功能区域 包含 功能菜单和编辑区域
  1408. // U.selectEl(_UAE.middle).append(_el[0]);
  1409. // U.MD.O.officeLoad(_el[0], userinfo, fileinfo || _UDID, "Excel", U.MD.O.AsynExcel); //创建Office编辑器,即iframe窗体。
  1410. // _el = _UAE.form; //返回word的整个窗体。
  1411. // }
  1412. // else {
  1413. // U.UF.F.windowTopCenter(_el);
  1414. // }
  1415. // return _el; // 返回当前窗体
  1416. //#region Excel查看
  1417. //连接查看Word资料
  1418. window.onload = function () {
  1419. U.UF.F.clickTopWindow();
  1420. if (window.print) { //判断是否有右键菜单
  1421. document.oncontextmenu = U.UF.EV.stopDefault; //阻止桌面右键默认菜单
  1422. }
  1423. document.onselectstart = U.UF.C.shieldedSelect; //禁止文本选择处理
  1424. U.UF.EV.addElementEvent("keydown", document, U.UF.C.shieldedBackspace); //禁止浏览器回退
  1425. var _UDID = U.UF.C.queryString("ID");
  1426. if (_UDID) {
  1427. parent.U.A.Request(US.AUTH, ["GetFileContent", _UDID], U.MD.O.E.AsynGOF, [[$("body")[0], true], _UDID]);
  1428. };
  1429. }
  1430. //获取文件异步
  1431. U.MD.O.E.AsynGOF = function (r) {
  1432. var _UST, _UDID = r.context[1];
  1433. r = r.value;
  1434. U.MD.O.E.SY["ID"] = _UDID;
  1435. r = U.MD.O.E.initExcel(r, _UDID);
  1436. U.MD.O.E.BLSC(_UDID, r);
  1437. parent.$("body").addAttrArray({ "innerHTML": U.MD.O.E.CKLBCJ(), "style": { "position": "absolute", "overflow": "auto"} });
  1438. }
  1439. //创建查看列表的
  1440. U.MD.O.E.CKLBCJ = function (UWI) {
  1441. var _UH, _UW, _UDSD, _UDTD, _UDMD,
  1442. _UGE = U.MD.O.E.SY["CE"]["TF"],
  1443. _UDPD = $$("div", { "style": { "cssText": "width:100%;height:100%;overflow:auto;"} });
  1444. _UDTD = $$("div", { "className": "U_MD_O_E_C_C U_MD_O_E_C_CO", "style": { "position": "static"} }, _UDPD);
  1445. _UDSD = $$("div", { "className": "U_MD_O_E_C_CL" }, _UDTD);
  1446. $$("div", { "className": "U_MD_O_E_C_CLT" }, _UDSD);
  1447. _UDSD = $$("div", { "className": "U_MD_O_E_C_CLC U_MD_O_E_C_CLCO", "style": { "height": "100%"} }, _UDSD);
  1448. _UDSD = $$("div", { "className": "U_E_LB", "id": "U_E_LB" }, _UDSD);
  1449. _UH = U.MD.O.E.SPTP(_UGE[0], _UDSD, "L");
  1450. _UDSD = $$("div", { "className": "U_MD_O_E_C_CH" }, _UDTD);
  1451. _UDMD = $$("div", { "className": "U_MD_O_E_C_CB" }, _UDSD);
  1452. _UDMD = $$("div", { "className": "U_MD_O_E_T_B", "id": "U_MD_O_E_T_B" }, _UDMD);
  1453. _UW = U.MD.O.E.SPTP(_UGE[1], _UDMD, "T");
  1454. _UDSD.style.width = _UW + "px";
  1455. _UDTD.style.width = _UW + 51 + "px"
  1456. _UDMD = $$("div", { "className": "U_MD_O_E_C_CC", "style": { "height": _UH + "px"} }, _UDSD);
  1457. _UDMD = $$("div", { "className": "U_MD_O_E_C_CCH U_MD_O_E_C_CCHO" }, _UDMD);
  1458. _UDMD = $$("div", { "className": "U_MD_O_E_T_ableArea", "id": "U_MD_O_E_T_ableArea" }, _UDMD);
  1459. U.MD.O.E.CBG(_UGE, _UDMD);
  1460. _UDSD = $$("div", { "className": "U_MD_O_E_C_X" }, _UDPD);
  1461. _UDMD = $$("div", { "className": "U_MD_O_E_EXR", "id": "U_MD_O_E_EXR" }, _UDSD);
  1462. U.MD.O.E.printTaskbar(_UDMD, U.MD.O.E.QHRWL);
  1463. return _UDPD.outerHTML;
  1464. }
  1465. //底部任务栏切换
  1466. U.MD.O.E.QHRWL = function (ITF, UW) {
  1467. UW = UW || window;
  1468. var _UW, _UH,
  1469. _el = UW.$("#U_MD_O_E_T_B"),
  1470. _UDTD = UW.$("#U_MD_O_E_T_ableArea"),
  1471. _UDSD = UW.$("#U_E_LB"),
  1472. _UKE = U_MD_O_E_EXR,
  1473. _UDE = U.MD.O.E.SwitchSheetTabs(ITF, true);
  1474. U.MD.O.E.SY["UW"] = UW;
  1475. if (_UDE) {
  1476. document.body.scrollTop = 0;
  1477. _UH = U.MD.O.E.SPTP(_UDE["TF"][0], _UDSD[0], "L");
  1478. _UW = U.MD.O.E.SPTP(_UDE["TF"][1], _el[0], "T");
  1479. _el.Parent(2).style.width = _UW + "px";
  1480. _el.Parent(3).style.width = _UW + 41 + "px";
  1481. U.MD.O.E.CBG(_UDE["TF"], _UDTD[0]);
  1482. U.selectEl(_UDTD).Parent(2).style.height = _UH + "px";
  1483. U.UF.EV.scrollToPosition(0, UW.$("body"));
  1484. U.UF.MR.DHQH(this, "U_MD_O_E_EXROO");
  1485. }
  1486. }
  1487. /**
  1488. * Excel打开异步
  1489. *
  1490. * @param {object} 登录用户信息
  1491. * @param {object} 文档信息数组
  1492. * @param {object} 获取存放窗体元素
  1493. * @param {object} Excel窗体元素(Ifrmae)
  1494. */
  1495. U.MD.O.AsynExcel = function (userinfo, fileinfo, loading, iframe) {
  1496. //生成word处理
  1497. var _win = iframe.contentWindow; //iframe 跨域变量,操作iframe中的变量
  1498. U.UF.DL.uploading(loading); //取消loading
  1499. U.MD.O.W.T.WETZ($(loading).Parent(), "Excel"); //loading取消后,重新设置word大小,设置A3,A4,A5的大小?
  1500. var _UDE = {
  1501. "fun": {
  1502. CoEd: U.MD.O.CoEd,
  1503. Backup: function () {
  1504. U.MD.O.Backup(fileinfo, _win);
  1505. },
  1506. "Onload": function () {
  1507. U.MD.O.OLExcel(US.userInfo, fileinfo, loading, iframe);
  1508. },
  1509. "Save": function () {
  1510. U.MD.O.WBCWJ(fileinfo, "Excel", loading);
  1511. }
  1512. }
  1513. };
  1514. var _UAE = ["H", "L", "T", "XR", "D", "R", "F", "E", "CE", "FE"]; //Excel各个部分 R不懂 H 列数区域 L 列数区域 T F 原始表格 CE选中区域外部div FE 选择区域编辑区 D查看表格区域 XR标题列表
  1515. for (i = 0; i < _UAE.length; i++) {
  1516. _UDE[_UAE[i]] = _win.$("#U_MD_O_E_E" + _UAE[i])[0]; //在操作层中添加该元素 并记录到变量中
  1517. }; //循环添加
  1518. // 获取数据库保存的Word值 判断是否保存或者覆盖,包括创建邀请协作人员,创建编辑历史,创建生成链接.创建热门模板。加载当前word文档的内容。创建光标,监控键盘输入等。这里是iframe中的word起始点。
  1519. //转向ifame中的js的入口点。
  1520. //fileinfo ? fileinfo.UserDirectoryID : "" 如果有文件id则表示文件已经在数据库存在,如果没有id,表示是新word。
  1521. //fileinfo ? fileinfo.UserId : userInfo.userid 如果有文件信息,则所有者为该文件的创建者,否则为自己的用户id。
  1522. var _id = fileinfo ? fileinfo.UserDirectoryID : "";
  1523. var _userid = fileinfo ? fileinfo.UserId : userInfo.userid;
  1524. _win.U.MD.O.E.load(_id, fileinfo, _userid, _UDE);
  1525. // if (fileinfo && fileinfo.length == 36) { //判断是否需要重新获取文件信息
  1526. // // U.A.Request(US.AUTH,"UseStudioDisk.GetFileByID", [fileinfo], U.MD.O.AsynWordO, ["", U.MD.O.AsynExcel, userinfo, el, UDFD]); //发送获取请求
  1527. // U.A.Request(US.CD, [US.DB, "UseStudio_Disk", "GetFileById", fileinfo], U.MD.O.AsynWordO, ["", U.MD.O.AsynExcel, userinfo, el, UDFD]); //发送获取请求
  1528. // } else {
  1529. // var i, //设置变量
  1530. // _UW = UDFD.contentWindow, //获取window操作层
  1531. // _UDE = {
  1532. // "fun": {
  1533. // CoEd: U.MD.O.CoEd,
  1534. // Backup: U.UF.C.apply(this, [
  1535. // [U.MD.O.Backup, [fileinfo, _UW]]
  1536. // ]),
  1537. // "Onload": U.UF.C.apply(this, [
  1538. // [U.MD.O.OLExcel, [userinfo, fileinfo, el, UDFD]]
  1539. // ]),
  1540. // "Save": U.UF.C.apply(this, [
  1541. // [U.MD.O.WBCWJ, [fileinfo, "Excel", el]]
  1542. // ])
  1543. // }
  1544. // }, //设置方法
  1545. // _UAE = ["H", "L", "T", "XR", "D", "R", "F", "E", "CE", "FE"]; //Excel各个部分 R不懂 H 列数区域 L 列数区域 T F 原始表格 CE选中区域外部div FE 选择区域编辑区 D查看表格区域 XR标题列表
  1546. // for (i = 0; i < _UAE.length; i++) {
  1547. // _UDE[_UAE[i]] = _UW.$("#U_MD_O_E_E" + _UAE[i])[0]; //在操作层中添加该元素 并记录到变量中
  1548. // }; //循环添加
  1549. // _UW.U.MD.O.E.load(fileinfo ? fileinfo.UserDirectoryID : "", fileinfo, userInfo.userid, _UDE); //初始化Ecel
  1550. // }
  1551. }
  1552. /**
  1553. * 生成Excel
  1554. *
  1555. * @param {object} 登录用户信息
  1556. * @param {object} 文档信息数组
  1557. * @param {object} 获取存放窗体元素
  1558. * @param {object} Excel窗体元素(Ifrmae)
  1559. */
  1560. U.MD.O.OLExcel = function (userinfo, fileinfo, el, UDFD) {
  1561. var _UW = UDFD.contentWindow, //获取window操作层
  1562. _UDPD = U.selectEl(el).Parent(); //获取外部div
  1563. U.UF.DL.uploading(el); //设置loading
  1564. U.MD.O.E.T.WETZ(_UDPD, (_UW.U.MD.O.E.T.TF["TF"] = "Excel")); //设置大小
  1565. _UW.U.MD.O.E.SetWH();
  1566. _UW.U.MD.O.E.printExcel(); //查看Excel
  1567. }
  1568. ////右键底部任务
  1569. //U.MD.O.E.RWRD = function (UDOD) {
  1570. // var _UDTD, _classname,
  1571. // _UGE = U.MD.O.E.SY,
  1572. // _UDE = _UGE["CE"]["RW"],
  1573. // i = _UDE.length,
  1574. // _UDRD = U.selectEl(_UGE["UAE"]["D"] || "#U_MD_O_E_C_RWRD"),
  1575. // _UDFD = $$("frag");
  1576. // if (_UDRD[0].style.display == "block") {
  1577. // _UDRD[0].style.display = "none";
  1578. // } //隐藏列表
  1579. // else {//查看列表
  1580. // _UDRD[0].innerText = "";
  1581. // while (i--) {
  1582. // if ((!(i % 4) && i != _UDE.length - 2)) {
  1583. // _classname = "U_MD_O_E_C_MOT" + " U_MD_O_E_C_MOO";
  1584. // } else {
  1585. // _classname = "U_MD_O_E_C_MOT";
  1586. // }
  1587. // _UDTD = $$("div",
  1588. // {
  1589. // "className": _classname,
  1590. // "onmousedown": U.UF.EV.stopBubble,
  1591. // "onclick": function () {
  1592. // U.MD.O.E.SwitchSheetTabs(i);
  1593. // U.MD.O.E.YCCD();
  1594. // }
  1595. // }, _UDFD);
  1596. // $$("div", { "innerHTML": "工作表" + (i + 1) }, _UDTD);
  1597. // }
  1598. // _UDRD.addAttrArray({
  1599. // "style":
  1600. // {
  1601. // "display": "block",
  1602. // "top": (-(_UDE.length * 30) - 5) + "px",
  1603. // "height": (_UDE.length * 30) + "px"
  1604. // }
  1605. // });
  1606. // _UDRD[0].appendChild(_UDFD);
  1607. // }
  1608. //}
  1609. // var _record = U.UF.E.deleteLine(this); //调用方法,获取删除的divid集合
  1610. // this.editor.idarr = U.UF.E.key.getLineIdArr(this); //重新定义原先数组
  1611. // if (_record && _record.deleteLine.length) {
  1612. // if (editor.operaNotice) {
  1613. // editor.operaNotice(_record);
  1614. // }
  1615. // }
  1616. // var _range = U.UF.E.getRangeAt();
  1617. // if (!_range) return;
  1618. // var _startEl = U.UF.E.getLineElement(_range.startContainer), //获取range对象的开始对象
  1619. // _endEl = U.UF.E.getLineElement(_range.endContainer); //获取range对象对象的结束对象
  1620. // var _result,
  1621. // _code = e.keyCode; //获取键盘值
  1622. // if (_code === 13) {//当按下回车键时
  1623. // if (!_range.collapsed) {//判断选区中是否有内容,如果有
  1624. // var _record = U.UF.E.deleteLine(editor); //调用方法,获取删除的divid集合
  1625. // if (_record && _record.deleteLine.length) {
  1626. // if (editor.operaNotice) {
  1627. // editor.operaNotice(_record);
  1628. // } else {
  1629. // console.log('删除行:' + _record.deleteLine);
  1630. // console.log('修改行:' + _record.updateLine);
  1631. // }
  1632. // } //如果存在,就输出他
  1633. // } //执行删除完毕
  1634. // if (_startEl === _endEl) {//如果开始对象等于结果对象
  1635. // _result = U.UF.E.key.addLine(_range); //调用方法,新建行
  1636. // if (editor.operaNotice) {
  1637. // editor.operaNotice(_result);
  1638. // } else {
  1639. // var _key;
  1640. // for (_key in _result) {
  1641. // console.log((_key == 'updateLine' ? '修改行:' : '添加行:') + _result[_key]);
  1642. // }
  1643. // }
  1644. // editor.editor.idarr = U.UF.E.key.getLineIdArr(editor); //定义对象中的idarr数组
  1645. // } else {
  1646. // if (_endEl.innerHTML === "") {//判断结束对象中是否有值,如果没有
  1647. // _endEl.innerHTML = "<br>"; //添加占位符
  1648. // U.UF.E.elementFocus(_range, _endEl); //光标聚焦到对象中
  1649. // }
  1650. // } //执行添加完毕
  1651. // return false; //返回false,使系统的方法不进行
  1652. // } else if (_code == 8 || _code == 46 || _code == 110) {
  1653. // var _record = U.UF.E.deleteLine(editor); //调用方法,获取删除的divid集合
  1654. // editor.editor.idarr = U.UF.E.key.getLineIdArr(editor); //重新定义原先数组
  1655. // //如果存在,就输出他
  1656. // if (_record && _record.deleteLine.length) {
  1657. // if (editor.operaNotice) {
  1658. // editor.operaNotice(_record);
  1659. // } else {
  1660. // console.log('删除行:' + _record.deleteLine);
  1661. // console.log('修改行:' + _record.updateLine);
  1662. // }
  1663. // } else {
  1664. // //否则则设置监听
  1665. // clearTimeout(editor.interval);
  1666. // editor.interval = setTimeout(function () {
  1667. // editor.operaNotice({ updateLine: [_startEl.id] });
  1668. // }, 1500);
  1669. // }
  1670. // } else if (editor.recordRange) {
  1671. // var _oldStartEl = U.UF.E.getLineElement(editor.recordRange.startContainer); //获取range对象的开始对象
  1672. // if (_oldStartEl !== _startEl) {
  1673. // console.log('切换了行');
  1674. // editor.operaNotice({ updateLine: [_oldStartEl.id] });
  1675. // } else {
  1676. // clearTimeout(editor.interval);
  1677. // editor.interval = setTimeout(function () {
  1678. // editor.operaNotice({ updateLine: [_oldStartEl.id] });
  1679. // }, 1500);
  1680. // }
  1681. // }
  1682. // if (_startEl != editor) {
  1683. // editor.recordRange = _range;
  1684. // }