123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- //由于经常更换版本号,导致用户存储的js文件有时候找不到,导致iframe跨域访问。而用户不清楚情况,所以现在要定向名称就叫UJ.js 有思js
- //每次更换版本时必须拷贝成UJ.js 中文名叫云js。
- //编辑区主js文件
- Namespace.register("U.CD"); //注册开发类主js,这个以后要放在主文件中。
- //全局变量.
- U.UF.S.FileName = /^([a-zA-Z0-9\s\._-]+)$/; //匹配文件名的正则表达式。
- U.UF.S.ZWFileName = /^[0-9a-zA-Z\u4e00-\u9fa5\._-]{1,40}\\*$/; //匹配中文文件名的正则表达式。
- U.CD.AjaxUrl = 'http://d-back.1473.cn/'; //默认请求页面
- U.CD.AjaxCross = "http://d-back.1473.cn/CD.htm";
- //U.CD.AjaxUrl = 'http://d.1473.cn:1337/'; //默认请求页面
- //U.CD.AjaxCross = "http://d.1473.cn:1337/CD.htm";
- U.CD.TipR = null; //光标位置。
- U.CD.Loading = null; //全局Loading。
- U.CD.USLang = "USHtml"; //由于C,PHP,HTML,需要共用一个数据,否则很多种语言很多数据库。所以在数据库根目录加一个标识以便识别
- U.CD.DType = { "TW": "提问", "ZY": "作业", "JH": "精华", "CT": "控件" }; /*发布项目时选项,全局变量,和数据库对应,和C PHP有关系*/
- U.CD.RPID = "b48eb794-10cd-4d0f-80b3-2632b57dd45c"; //前端评论主id
- //统一登录全局变量
- US.LoginID = 2;
- //onload
- U.CD.Init = function () {
- U.CD.Loading = $("#UCD_LD")[0]; //全局loading开始
- U.CD.LO.SetWH(); //由于html局限性,强制设置宽高。
- U.CD.CD.Init(); //初始化应用
- U.CD.Tip.Init(); //提示框初始化
- U.ACD = window.frames["U_CD"].U.A;
- U.UF.CD.loadPageCrossDomain(function () {
- //页面跨域完毕,调用处理方法。
- U.CD.AsynJWH();
- });
- // 这版先把作品的工具栏隐藏
- //U.CD.LO.HEToolbar();
- U.CD.CF.Config.implement();
- U.CD.TipR = U.UF.E.GetSelectionRange(window, $("#UCD_CT_Code_CT")[0], { "TF": "UCD_CODE", "CB": U.CD.R.Wrap }); //获取光标位置。
- }
- //所有的跨域文件加载完毕,允许页面点击。在1473所有事件动态生成,鼠标点击无效。
- //异步加载完执行函数
- U.CD.AsynJWH = function () {
- window.frames["UCD_CT_SM_IF"].document.body.onmousedown = U.CD.L.settd;
- //全局loading结束。
- U.CD.Loading.style.display = "none";
- //U.CD.SY.BK(); //加载首页
- //获取传参,如果有#!等字符,执行url重写。否则,执行一般处理
- U.CD.Loading.innerHTML = "跨域完成";
- U.CD.SL.Init(); //加载实例
- //全局loading结束。
- U.CD.Loading.style.display = "none";
- U.CD.Url.Init(); //URL重写模块
- }
- //加载代码
- U.CD.LoadCode = function (UTH) {
- setTimeout(function () {
- U.CD.CD.DrawCode(U.CD.CD.InitCode(UTH), false); //初始化代码后绘制在代码窗口
- U.CD.CD.ExecIF($('#UCD_CT_Code_CT')[0]);
- }, 1000);
- }
- //U.CD.Loading.innerHTML = "开始跨域";
- //U.UF.EV.addPrototype(Object, U.E.E); //让所有的属性都有增删查改 包括了字符串 数组 集合 函数 所以需要改写for in循环
- //本项目所有Ajax请求使用U.ACD。如果使用U.A会跳到main项目中执行,导致跨域。重要。DISK是U.Adisk。参加函数U.CD.AsynLI
- //U.ACD = U.A; U.CD.AsynLI(); //跨域Ajax请求的解决方法//项目调用了主项目的U.A。。。会导致跨域拒绝访问。
- //U.CD.CD.Init(); //初始化代码窗口。必须提前到用户自动登录以前,否则会导致跨域问题。
- //用户登录后再装载最右边的面板。
- //用户登录后装载用户内容
- //U.CD.U.LUData();
- //setTimeout(function () { U.CD.LO.Split(); }, 500)//解决ie7垂直滚动条问题。ie7垂直滚动条有时候会有很长的边距,太奇怪。
- //晕了,怎么老是要这样,iframe中的运行也要如此,没办法了
- //setTimeout(function () { U.CD.CD.IFReload(); }, 3000);
- //全局loading结束。
- //U.CD.Loading = $("#UCD_LD")[0]; U.CD.Loading.style.display = "none";
- //首页窗口改变重新设置宽高
- //window.onresize = U.CD.SY.SetWH;
- //加载1473主项目
- //U.CD.OU.Get1473();
- //窗口改变重新设置宽高。
- window.onresize = U.CD.LO.SetWH;
- //函数起始点
- window.onload = U.CD.Init;
- //window.onresize = U.CD.LO.SetWH;
- //鼠标左右键
- //window.onmousedown = U.CD.SK.MouseShunt;
- //退出时提示保存代码
- window.onbeforeunload = function () {
- //event.returnValue = "Are u ssss";
- }
- /*
- */
- /**
- * 引入CodeMirror,在视图上初始化对象,并赋予全局U.CD.Editor后续操作主要针对两个接口
- * 1.U.CD.Editor.setValue('为codemirror赋值');
- * 2.U.CD.Editor.getValue(); 该方法得到的结果是经过转义的数据
- *
- * 模块引用
- * lineNumbers 行号
- * mode: 语法分析模式
- * selectionPointer: 多文本操作
- */
- // var mixedMode = {
- // name: "htmlmixed",
- // scriptTypes: [{
- // matches: /\/x-handlebars-template|\/x-mustache/i,
- // mode: null
- // }, {
- // matches: /(text|application)\/(x-)?vb(a|script)/i,
- // mode: "vbscript"
- // }]
- // };
- // U.CD.Editor = CodeMirror.fromTextArea($("#UCD_CT_Code_Value")[0], {
- // lineNumbers: true,
- // extraKeys: { "Shift-Space": "autocomplete" },
- // selectionPointer: true,
- // mode: mixedMode
- // });
- // // 绑定自动完成事件, 通过一个空格键位触发,后续再实现一个舒适的任意键自动完成方案
- // // 1. 区分现在存在于哪个代码块,html/js/css 然后争对各个代码块进行处理
- // U.CD.Editor.on("keyup", function (cm, e) {
- // var cursor = cm.getCursor();
- // var mode = cm.getModeAt(cursor);
- // var line = cm.getLine(cursor.line);
- // var isNull = (line.slice(0, cursor.ch - 1).trim() === ''); // 光标前为空
- // var isAuto = false;
- // var hasShift = e.shiftKey;
- // var keyCode = e.keyCode;
- // // css
- // var hasBrace = ~line.indexOf('{');
- // // var hasCrtl = e.ctrlKey;
- // switch (mode.name) {
- // case "javascript":
- // if (((e.keyCode === 190 && !hasShift) || e.keyCode === 110) && !isNull) isAuto = true;
- // break;
- // case "xml":
- // break;
- // case "css":
- // if (hasShift && keyCode === 186 && !isNull) isAuto = true;
- // else if (hasShift && keyCode == 219 && !hasBrace) isAuto = true;
- // break;
- // }
- // if (e.keyCode === 32) isAuto = true;
- // if (isAuto) {
- // setTimeout(function () {
- // cm.execCommand("autocomplete");
- // }, 20);
- // }
- // U.CD.CD.IFReload();
- // });
|