U.CD.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. //由于经常更换版本号,导致用户存储的js文件有时候找不到,导致iframe跨域访问。而用户不清楚情况,所以现在要定向名称就叫UJ.js 有思js
  2. //每次更换版本时必须拷贝成UJ.js 中文名叫云js。
  3. //编辑区主js文件
  4. Namespace.register("U.CD"); //注册开发类主js,这个以后要放在主文件中。
  5. //污染所有原生对象,以前在1473这一步被屏蔽了,此处重要!
  6. //U.M.Setprototype(Object, U.E.E); //让所有的属性都有增删查改 包括了字符串 数组 集合 函数 所以需要改写for in循环
  7. //全局变量.
  8. U.MS.FileName = /^([a-zA-Z0-9\s\._-]+)$/; //匹配文件名的正则表达式。
  9. U.MS.ZWFileName = /^[0-9a-zA-Z\u4e00-\u9fa5\._-]{1,40}\\*$/; //匹配中文文件名的正则表达式。
  10. //U.CD.AjaxUrl = 'http://c.1473.cn/'; //默认请求页面
  11. //U.CD.AjaxCross = "http://c.1473.cn/CD.htm";
  12. U.CD.AjaxUrl = 'http://c-back.1473.cn/'; //默认请求页面
  13. U.CD.AjaxCross = "http://c-back.1473.cn/CD.htm";
  14. U.CD.TipR = null; //光标位置。
  15. U.CD.Loading = null; //全局Loading。
  16. U.CD.FGuid = null; //未登录用户文件id,保证用户运行多次只生成一个.c和.exe
  17. //!!!!!!!!!!!!!!!!!!!!!!!!注释,在d.1473.cn中,前端语言标识为USHtml,和后端是分割开的。因为界面不一样,所以是分离的。。。。。
  18. U.CD.Langs = ["C", "PHP", "Net", "Python", "Nodejs", "Ruby", "Perl", "Lisp"]; //所有语言数组
  19. U.CD.USLang = "C"; //由于C,PHP,HTML,需要共用一个数据,否则很多种语言很多数据库。所以在数据库根目录加一个标识以便识别
  20. U.CD.DType = { "TW": "提问", "ZY": "作业", "JH": "精华", "CT": "控件" }; /*发布项目时选项,全局变量,和数据库对应,和C PHP有关系*/
  21. U.CD.ExamWin = { "Content": "", "CreateDate": "2014-05-19T08:50:01.341Z", "Deep": "1", "ID": "7c23332d-6135-f385-5327-73333fadfc7c", "IsDelete": "false", "Name": "云端示例", "Type": "file" };
  22. U.CD.BRPID = "B6DBF807-8F28-4C1C-B9D4-4A0BDAE4EA30"; //后端评论主id
  23. //统一登录全局变量
  24. US.LoginID = 2;
  25. U.CD.Init = function () {
  26. U.CD.Loading = $("#UCD_LD")[0]; //全局loading开始
  27. //U.CD.Loading.innerHTML = "下载完成,开始初始化数据";
  28. U.CD.TipR = U.D.E.GetSelectionRange(window, $("#UCD_CT_Code_CT")[0], { "TF": "UCD_CODE", "CB": U.CD.R.Wrap }); //获取光标位置。
  29. //document.onclick = document.body.onmousedown = U.M.apply(this, [[U.CD.Tip.HidTip]]); //绑定body的左键
  30. //document.onclick = document.body.onmousedown = U.M.apply(this, [[U.D.SetDTop]]); ///赋予置于顶层的功能
  31. //U.M.Setprototype(Object, U.E.E); //让所有的属性都有增删查改 包括了字符串 数组 集合 函数 所以需要改写for in循环
  32. //本项目所有Ajax请求使用U.ACD。如果使用U.A会跳到main项目中执行,导致跨域。重要。DISK是U.Adisk。参加函数U.CD.AsynLI
  33. //U.CD.Loading.innerHTML = "开始跨域";
  34. //U.ACD = U.A; U.CD.AsynLI(); //跨域Ajax请求的解决方法//项目调用了主项目的U.A。。。会导致跨域拒绝访问。
  35. U.CD.CD.Init(); //初始化代码窗口。必须提前到用户自动登录以前,否则会导致跨域问题。
  36. //U.CD.U.LogoutPanel();//初始化用户登录按钮
  37. U.CD.LO.SetWH(); //由于html局限性,强制设置宽高。
  38. U.CD.CL.Init(U.CD.USLang); //生成左边工具栏语言条。
  39. //U.CD.Tip.Init(); //提示框初始化
  40. //用户登录后再装载最右边的面板。
  41. //用户登录后装载用户内容
  42. //U.CD.U.LUData();
  43. //加载1473主项目
  44. //U.CD.OU.Get1473();
  45. //U.CD.LIFA([["U_CD", U.CD.AjaxCross, "ACD"]], U.CD.JZWB);
  46. U.CD.GQB($("#UCD_LS")[0], U.CD.AsynJWH); //把1473迁徙到自己项目中。
  47. }
  48. //---------------------------------------------------解决Ajax跨域问题------------------------------------------------------------
  49. //域名加载
  50. //U.CD.JZWB = function () {
  51. // U.CD.GQB($("#UCD_LS")[0], U.CD.AsynJWH); //把1473迁徙到自己项目中。
  52. //}
  53. //所有的跨域文件加载完毕,允许页面点击。在1473所有事件动态生成,鼠标点击无效。
  54. //异步加载完执行函数
  55. U.CD.AsynJWH = function () {
  56. U.Alert("1473签入完成");
  57. //U.D.UJZ = [["U_CD", U.CD.AjaxCross, "ACD"]];
  58. //U.D.OL.push(U.CD.JZWB); //完全跨域
  59. //U.CD.SY.BK(); //加载首页
  60. //获取传参,如果有#!等字符,执行url重写。否则,执行一般处理
  61. U.CD.Url.Init(); //URL重写模块
  62. U.CD.Loading.innerHTML = "跨域完成";
  63. U.CD.CL.OpenLang(); //弹出切换语言的窗体
  64. //全局loading结束。
  65. U.CD.Loading.style.display = "none";
  66. }
  67. window.onload = U.CD.Init;
  68. //窗口改变重新设置宽高。
  69. window.onresize = U.CD.LO.SetWH;
  70. //函数起始点
  71. //window.onload = U.CD.Init;
  72. //退出时提示保存代码
  73. window.onbeforeunload = function () {
  74. //event.returnValue = "是否已经保存了所有代码?";
  75. }
  76. //异步加载iframe跨域请求
  77. //U.CD.AsynLI = function () {
  78. // var i, _UCS = document.createDocumentFragment(), _UIFR, _UDE = { "U_CD": "ACD", "U_Main": "A", "U_Disk": "Adisk", "U_BG": "UB", "U_PB": "PB", "U_Pay": "PY", "reply": "RY", "U_ME": "MA", "TF": true }, _UTE = [["U_CD", U.CD.AjaxCross, "ACD"], ["U_Main", "http://main.1473.cn/index.htm", "A"], ["UL_IF", "http://www.1473.cn/NewPage.htm"]]; //_UTE = [["U_Main", "http://main.1473.cn/index.htm", "A"], ["U_Disk", "http://disk.1473.cn/index.htm", "A"], ["UL_IF", "http://www.1473.cn/NewPage.htm"], ["U_BG", "http://BMain.1473.cn/index.htm"], ["U_PB", "http://pb.1473.cn/CD.htm", "PB"], ["U_office", "http://office.1473.cn/index.htm"], ["U_Pay", "http://pay.1473.cn/index.htm", "PY"], ["reply", "http://reply.1473.cn/index.htm", "RY"], ["U_ME", "http://money.1473.cn/CD.htm", "MA"]];
  79. // U.D.ITF = _UTE.length; //预加载的长度
  80. // for (var i = 0; i < _UTE.length; i++) {//添加跨域访问的iframe
  81. // _UIFR = $$("iframe", { "id": _UTE[i][0], "name": _UTE[i][0], "src": _UTE[i][1], "width": 0, "height": 0, "style": { "display": "none"} }, _UCS);
  82. // U.MD.IframeLoad(_UIFR, [[U.CD.AsynLIFA, ([_UDE])]]);
  83. // }
  84. // document.body.appendChild(_UCS);
  85. //}
  86. //异步加载Iframe成功后执行
  87. //U.CD.AsynLIFA = function (UTE) {
  88. // this.contentWindow.name = this.id;
  89. // if (this.id == "U_Main") { for (var i in UTE) { if (UTE.hasOwnProperty(i) && i != "TF" && i != "U_CD") { (window.U)[UTE[i]] = window.frames["U_Main"].U.A; delete UTE[i]; } }; UTE["TF"] = false; }
  90. // else { window.U["ACD"] = window.frames["U_CD"].U.A; delete UTE["U_CD"]; }
  91. // //alert(!UTE["TF"] && !UTE["U_CD"]);//执行了2次。不对!
  92. // (!UTE["TF"] && !UTE["U_CD"]) && (U.CD.AsynJWH());
  93. // //alert((!UTE["TF"] && !UTE["U_CD"]));
  94. //}