| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 | 
							- //------------------------------------------------------------------------------------用户桌面和程序数据初始化区域----------------------------------------------------------------------------------------------------------------
 
- Namespace.register("U.MD.D"); //桌面onload和桌面总控的命名空间
 
- /*
 
- window.onload的流程:
 
- 1、自由属性的设置,例如:页面识别id。允许浏览器多页面浏览www.1473.cn
 
- 2、加载各种事件绑定,如:页面大小监视,不允许选择桌面文字,ie7以下浏览器页面提示
 
- 3、加载桌面图标。
 
- 4、加载跨域设置,如果没有跨域,首页数据无法获取
 
- 4、加载首页
 
- 5、加载广告,QQ登录等外链。
 
- UD和UC区别 uc是框架函数 ud为操作系统原壳 这里的简化的目标很简单 只要有人应用ud 就会引用一个web操作系统 提供操作系统的功能应用
 
- 难题 :
 
- 1、命名和用户冲突 会导致原web系统不可使用
 
- 2、函数冲突 如 用户自带window.resize这样的函数 我们提供了接口 但是这个接口的的暴露性可见性体现出文档的重要 宣传文档也就是文宣的重要性高了
 
- 3、有参数注释的都为暴露接口类型 其他都为内部使用 更好的体现方式
 
- */
 
- //#region 配置区域,相当于全局变量定义
 
- U.MD.D.IsUseStudio = true;
 
- //本地存储类
 
- U.MD.D.LocalStorage = null;
 
- //#endregion
 
- //#region onload处理
 
- /**
 
-  * 系统初始化处理
 
-  *
 
-  * @param  {function} 在外部项目应用该项目的时候 可以传入cb这个参数,如果传入了这个参数在回调跨域main.1473.cn加载成功会就会直接回调
 
-  */
 
- window.onload = function () {
 
-     U.MD.D.Load();
 
-     U.MD.U.L.login();
 
-     //U.MD.D.isLogin();
 
- }
 
- US.Config = {
 
-     server: '//beta.api.cocorobo.cn/api/',
 
-     api: '//beta.api.cocorobo.cn/',
 
-     chat: "//chat.api.cocorobo.cn/",
 
-     edu: '//api.edu.cocorobo.cn/edu/',
 
-     origin: '//cocorobo.cn',
 
-     pbl: "//pbl.cocorobo.cn/api/pbl/",
 
-     // pbl: "http://localhost:7003/api/pbl/",
 
-     basename: '',
 
- }
 
- /**
 
-  * 供外部调用的window.onload函数云端系统启动项
 
-  *
 
-  * @param  {function} 在外部项目应用该项目的时候 可以传入cb这个参数,如果传入了这个参数在回调跨域main.1473.cn加载成功会就会直接回调
 
-  */
 
- U.MD.D.Load = U.MD.D.FLoad = function (cb) {
 
-     //这里判断是如果是www.1473.cn 或者 www.boomyun.com项目的时候 或者是 通过ufrom的跨域函数加载成功页面时候可以执行window.onload, 添加判断的目的主要是反正 其他项目引用uformd的时候自动执行window.onload报错。
 
-     //当引用云端硬盘,好友模块时需要在自己的js文件中添加window.onload入口函数,否则会触发云端的window.onload,导致系统报错,
 
-     //初始化桌面,如果是1473主站点那么初始化桌面系统,否则外部引入1473不加载桌面
 
-     //系统初始化、第一个就是加载桌面,然后初始化全局变量、绑定事件、最后加载数据(加载数据需要跨域加载,因为项目分离的原因,我们有disk.1473.cn、user.1473.cn、firend.1473.cn里面有静态数据,还有动态的后台)
 
-     if (U.MD.D.IsUseStudio) {
 
-         //桌面初始化弹出
 
-         U.selectEl("#UD_Dtop")[0].style.display = "block";
 
-         //桌面做为一个置底的窗体
 
-         new U.UF.UI.form(false, U.selectEl("#UD_Dtop")[0], { onresize: true, style: { "cssText": "width:100%;height:100%;padding:0;border:0;border-radius:0;box-shadow:0;position:static;" }, "className": "" }, { istop: false, isdrag: false, isdrag: false, isstretching: false, isenlarge: false, isnarrow: false, isclose: false }, null, { style: { "padding": "0" } });
 
-     }
 
-     //这里加判断的原因是怕有开发者开发的过程中直接调用uformd.js没有写跨域加载,没有写window.onload导致再运行的过程中找不到元素报错
 
-     if ($("#U_MD_Home")[0]) {
 
-         //设置页面大小等的全局变量
 
-         U.MD.D.settingGlobalVariables();
 
-         //浏览器事件监视及处理
 
-         U.MD.D.addEvents();
 
-         //var _browserinfo = U.UF.CI.getBrowser(); //获取浏览器
 
-         ////ie7以下的浏览器弹出不兼容的处理 
 
-         //if (_browserinfo["browser"] == "msie" && parseInt(_browserinfo["ver"]) < 7) {
 
-         //    //弹出不兼容的处理 
 
-         //    U.MD.D.A.browserCompatibleForm();
 
-         //}
 
-     }
 
-     //跨域加载
 
-     U.MD.D.crossDomain(cb); //跨域初始化,里面包含了用户登录
 
- }
 
- /**
 
-  * 设置当前使用页面大小
 
-  */
 
- U.MD.D.settingGlobalVariables = function () {
 
-     //获取页面的大小
 
-     var _size = U.selectEl("body").getElementInfo();
 
-     US.height = _size["CH"]; //获取高度
 
-     US.width = _size["CW"]; //获取宽度
 
-     //1473的登录识别id
 
-     US.systemId = 1;
 
-     //页面识别id 页面唯一的识别 作为用户访问1473的唯一识别码,在之前用户获取聊天室的信息的唯一识别码
 
-     US.pageId = Guid.newGuid();
 
- }
 
- /**
 
-  * 系统监视
 
-  */
 
- U.MD.D.addEvents = function () {
 
-     //页面活动状态监视,失焦的时候停止五秒刷新,聚焦的时候开始刷新
 
-     U.UF.EV.IsActivity(U.MD.D.focus, U.MD.D.blur);
 
-     //监视页面的点击 使得窗体点击为顶部
 
-     U.UF.F.clickTopWindow();
 
-     //页面大小变化监视
 
-     window.onresize = U.MD.D.reSize;
 
-     U.MD.D.reSize();
 
-     //如果是云端1473则屏蔽菜单和错误弹框
 
-     if (U.MD.D.IsUseStudio) {
 
-         if (window.print) { //判断是否有右键菜单
 
-             document.oncontextmenu = U.UF.EV.stopDefault; //阻止桌面右键默认菜单
 
-         }
 
-         document.onselectstart = U.UF.C.shieldedSelect; //禁止文本选择处理
 
-         U.UF.EV.addElementEvent("keydown", document, U.UF.C.shieldedBackspace); //禁止浏览器回退
 
-         //window.onerror = U.MD.D.error; //错误提示屏蔽
 
-     }
 
-     //允许错误提示和右键菜单
 
-     else {
 
-         window.onerror = null;
 
-     }
 
-     //页面路由事件处理 
 
-     U.UF.N.route(U.MD.N.urlGuide);
 
- }
 
- /**
 
-  * 页面大小变化时,需要重新排列图标及任务栏大小的变化.
 
-  */
 
- U.MD.D.reSize = function () {
 
-     //处理窗体区域 随着页面大小变化而变化
 
-     U.UF.UI.form.windowResize();
 
-     //页面变化处理
 
-     //获取页面的大小
 
-     var _size = U.selectEl("body").getElementInfo();
 
-     US.height = _size["CH"]; //获取高度
 
-     US.width = _size["CW"]; //获取宽度;
 
-     //任务栏处理
 
-     if ($("#U_MD_D_RW")) {
 
-         U.selectEl("#U_MD_D_RW").css("width", US.width - 165 + "px");
 
-         U.MD.D.T.taskbar.multitask($("#U_MD_D_RW")[0]);
 
-         //桌面图标处理
 
-         U.MD.D.iconPostion($("#U_MD_D_K").Child());
 
-     }
 
- }
 
- /**
 
-  * 跨域引入1473
 
-  * @param  {function} 跨域加载成功后的回调函数
 
-  */
 
- U.MD.D.crossDomain = function (cb) {
 
-     U.MD.D.loadApplication(cb);
 
-     ////跨域加载,如果是1473的跨域,那么则添加跨域的iframe处理
 
-     //if (document.domain == "1473.cn") {
 
-     //    U.UF.CD.loadAjaxCrossDomain(function () {
 
-     //        U.MD.D.loadApplication(cb);
 
-     //    });
 
-     //}
 
-     ////如果是非1473的跨域,添加跨域的iframe
 
-     //else {
 
-     //    U.UF.CD.thirdPartyLoadAjaxCrossDomain(function () {
 
-     //        U.MD.D.loadApplication(cb);
 
-     //    });
 
-     //}
 
- }
 
- /**
 
-  * 加载user 、 friend 、disk的js
 
-  */
 
- U.MD.D.loadApplication = function (cb) {
 
-     //U.UF.CD.loadApplication(function () {
 
-     //    U.MD.D.asynCrossDomain(cb);
 
-     //});
 
-     U.MD.D.asynCrossDomain(cb);
 
- }
 
- /**
 
-  * 域名加载成功后异步 此处可正式获取数据
 
-  * @param  {function} 跨域加载成功后的回调函数
 
-  */
 
- U.MD.D.asynCrossDomain = function (cb) {
 
-     ////初始化url的处理
 
-     //U.MD.N.urlGuide();
 
-     ////通过cookie登录
 
-     //U.MD.U.L.cookieLogin();
 
-     ////如果是1473则弹出1473的首页
 
-     //if (U.MD.D.IsUseStudio) {
 
-     //    U.MD.D.I.openApplication("boomYun");
 
-     //}
 
-     ////其它模块加载处理
 
-     //U.MD.D.otherModularLoad();
 
-     ////添加用户访问记录
 
-     //U.UF.CI.getUserLocation(U.MD.D.visitLog);
 
-     //桌面开始点,起始函数
 
-     if ($("#UD_Dtop")[0]) {
 
-         U.MD.D.I.init();
 
-     }
 
-     //如果其他站点进入1473,这里是引入成功的回调处理
 
-     if (U.UF.C.isFunction(cb)) {
 
-         cb(); //回调处理
 
-     }
 
-     setInterval(function () {
 
-         U.MD.D.getuser(); //用户登录
 
-     }, 2000)
 
- }
 
- /**
 
-  * 其它模块的加载
 
-  */
 
- U.MD.D.otherModularLoad = function () {
 
-     //计时器消息初始化 每个3秒刷一次消息
 
-     U.MD.C.T.onesetInterval();
 
-     //加载如广告 各模块加载
 
-     U.MD.D.thirdPartyLoad(); //页面插件加载
 
-     //html5本地存储,暂时用来完成本地页面交互消息 作用共享页面信息,还未完善。
 
-     //U.MD.D.record();
 
- }
 
- /**
 
-  * 第三方广告和登录加载处理
 
-  */
 
- U.MD.D.thirdPartyLoad = function () {
 
-     //阿里巴巴广告加载
 
-     //    U.UF.DL.C.AD.alimama([
 
-     //        { pid: "mm_32325420_3265865_24254681", appkey: "", unid: "" },
 
-     //        { pid: "mm_32325420_3265865_14752067", appkey: "", unid: "" },
 
-     //        { pid: "mm_32325420_3265865_24246760", appkey: "", unid: "" },
 
-     //        { pid: "mm_32325420_3265865_24254681", appkey: "", unid: ""}]);
 
-     //qq登录加载按钮
 
-     //    U.MD.U.OT.qqLoadJs({ btnId: "U_MD_U_L_login_O_T_app_QQ", size: "C_S" });
 
-     //微博登录加载按钮
 
-     //    U.MD.U.OT.weiboLoadJs({ id: "U_MD_U_L_login_O_T_app_I", type: "3,2", show_head: false, show_name: false, show_cancel: false,
 
-     //        callback: { login: U.MD.U.OT.weiboLoginCallBack }
 
-     //    });
 
-     //百度统计加载
 
-     //    U.UF.DL.C.AD.onloadBaiduJs("1fce47ee7e8655ddd108fca7116f0752");
 
-     //    U.UF.DL.C.AD.onloadBaiduJs("f0ececeb4f687bc4d4ffb7719f4cf6a7");
 
- }
 
- /**
 
-  * 写入访问用户信息
 
-  */
 
- U.MD.D.visitLog = function () {
 
-     U.A.Request(US.USER, ["AddToLoginLog", US.userInfo.UserId || US.EMPTYGUID, US.city.userAllLocation || ""], function () { }); //访问日志添加消息
 
- }
 
- //#endregion
 
- //#region 页面事件处理
 
- //关闭页面处理 把页面的活动数-1
 
- window.onunload = function () {
 
-     try {
 
-         var _userinfo = US.userInfo;
 
-         if (U.MD.D.LocalStorage) {
 
-             var _count = U.MD.D.LocalStorage.get("ati") || 0;
 
-             if (_count > 0) { _count-- };
 
-             U.MD.D.LocalStorage.set("ati", _count); //这是活动用户-1
 
-         }
 
-         if (_userinfo.UserId && U.A) { //在状态中让这个活动用户下线
 
-             U.A.Request(US.USER, ["UserOffline", _userinfo.UserId], function () { }, []);
 
-         }
 
-     } catch (e) { }
 
- }
 
- //错误处理,前端错误需要在控制台输出,同时提交到错误数据库
 
- //window.onerror = function(sMessage,sUrl,sLine,columnNumber,errorObj){};
 
- //onerror函数的五个参数用于确定错误确切的信息,代表的意思依次为:
 
- //* @param {String} errorMessage errorMessage  错误信息 
 
- //* @param {String} scriptURI   出错的文件 
 
- //* @param {Long}  lineNumber   出错代码的行号 
 
- //* @param {Long}  columnNumber  出错代码的列号 
 
- //* @param {Object} errorObj    错误的详细信息,Anything
 
- U.MD.D.error = function (errorMessage, scripturi, linenumber, columnnumber, errorobj) {
 
-     errorobj = errorobj || {}; //屏蔽js错误
 
-     U.A.Request(US.USER, ["SetError", 0, (event.errorMessage || event || errorMessage), (scripturi || event.filename || event.errorUr) + "。行号:" + (linenumber || event.lineno || event.errorLine)], function () { }, []); //错误消息发送到数据库
 
-     U.UF.C.console(event.errorMessage || event || errorobj); //console 输出错误信息
 
-     return true; //不让浏览器弹出错误报告,浏览器会弹出一个comfirm的错误。
 
- }
 
- /**
 
-  * 用户登录处理
 
-  */
 
- U.MD.D.getuser = function () {
 
-     var userInfo = US.userInfo;
 
-     if (Object.keys(userInfo).length === 0) {
 
-         var _cookie = U.UF.Cookie.get("cocorobo");
 
-         if (Object.keys(userInfo).length === 0 && _cookie) {
 
-             U.A.Request(US.Config.server + "getcookieuserid", [], function (res) {
 
-                 if (res.value && res.value[0] && res.value[0][0]) {
 
-                     var _user = res.value[0][0];
 
-                     U.A.Request(US.Config.edu + "admin/userinfo/userinfoById/" + _user.userid, [], function (res) {
 
-                         if (res.value && res.value[0] && res.value[0][0]) {
 
-                             US.userInfo = res.value[0][0]; //记录用户数据
 
-                             US.userInfo.userid = _user.userid;
 
-                             if ($("#U_MD_HomeC_Pop")[0]) {
 
-                                 $("#U_MD_HomeC_Pop")[0].close(); //关闭登陆
 
-                             }
 
-                             U.A.Request(US.Config.pbl + "selectUser?userid=" + _user.userid, [], function (res) {//US.userInfo.userid
 
-                                 if (res.value == null || res.value[0].length == 0) {
 
-                                     U.MD.D.I.openApplication("my")
 
-                                 }
 
-                                 else {
 
-                                     US.userInfo = res.value[0][0];
 
-                                     $(".avatar")[0].style.display = "block";
 
-                                 }
 
-                                 $(".login")[0].style.display = "none";
 
-                                 $(".register")[0].style.display = "none";
 
-                                 $(".userName")[0].style.display = "block";
 
-                                 $(".userName")[0].innerHTML = US.userInfo.username || US.userInfo.alias;
 
-                                 $(".exit")[0].style.display = "block";
 
-                                 U.MD.O.P.connect(); //登录成功后连接socket服务同步协同编辑
 
-                             }, [], { "type": "GET", "withCredentials": true });
 
-                         }
 
-                     }, [], { "type": "GET", "withCredentials": true });
 
-                 }
 
-             }, [], { "type": "GET", "withCredentials": true });
 
-         }
 
-     }
 
- }
 
- //#endregion
 
- //#region 获取ifram下的html
 
- //U.MD.D.getIfraemHtml = function (src) {
 
- //    var _iframe = $$("iframe", { src: src, style: { display: "none"} });
 
- //    //跨域回调设置
 
- //    U.UF.DL.iframeLoad(_iframe, function () {
 
- //        var _html = _iframe.contentWindow.document.body.innerHTML;
 
- //        console.log(_html);
 
- //        U.selectEl(_iframe).remove();
 
- //    });
 
- //    U.selectEl(_iframe).appendTo($('body')[0]);
 
- //};
 
- //#endregion
 
 
  |