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