Namespace.register("U.CD.OU"); //注册引用1473主项目的js,添加交友等功能。 //注意事项 //1、两边的htmlbody元素定义需要一致 //2、需要重载主项目的window.onload以及以下的几个函数。重载方法在下面有记载。 //获取1473主项目body中的所有内容,追加到本项目末尾,以调用硬盘,好友等功能。 U.CD.OU.Get1473 = function () { //首先创建一个名为US_M_IF的iframe $$("iframe", { "id": "US_M_IF", "name": "US_M_IF", "style": { "cssText": "width:0px;height:0px;"} }, document.body); //再创建一个名为US_M_DIV的div用于复制节点 var m = $$("div", { "id": "US_M_DIV", "style": { "cssText": "width:0px; height:100%; position:absolute; top:0px; left:0px; overflow:hidden;"} }, document.body); var i = $("#US_M_IF")[0]; i.src = "http://www.1473.cn"; U.MD.IframeLoad(i, [[U.CD.OU.Get1473Asyn, ([i, m])]]); } //获取到1473主项目后回调处理 U.CD.OU.Get1473Asyn = function (f, m) { //循环克隆添加1473主项目的节点到编程平台,把html元素对应拷贝到编程平台,这种方法不可行 //采用innerHTML的方式才能移除掉iframe中的信息。否则,事件会失效。 //var m = $("#US_M_IF")[0]; m.innerHTML = f.contentWindow.document.body.innerHTML; document.body.removeChild(f); //移除了此iframe后所有事件丢失了。 U.CD.OU.RemoveJS(m); //移除掉很多不需要的js和注释 U.D.FLoad(); //重新执行UD.js中的window.onload。 U.CD.OU.Dis1473Ele(); //把需要显示的元素加载到body中 //添加本项目window.resize事件到主项目window.resize,window.onload和window.onresize是同名函数。只能这样处理 //但1473主项目的window.onreisze函数脱离环境运行不成功,等会再研究 U.M.AddEvent("resize", window, U.CD.LO.SetWH); } U.CD.OU.RemoveJS = function (m) { //移除掉广告js,因为本项目中已经有了,移除时只能从大到小循环 var d = m.childNodes, i; for (i = d.length - 1; i > 0; i--) { if (d[i].tagName == "SCRIPT" || d[i].tagName == "!") { //如果是QQ登录Web登录,则移动到body末尾。这种方式出错,改为Html直接引用 //if (d[i].src.indexOf("U.U.OT.js") > -1) document.body.appendChild(d[i]); m.removeChild(d[i]); } } } //主项目的静态元素需要显示在子项目中的,全部提到body层 U.CD.OU.Dis1473Ele = function () { //此处还可以把其他不可见,但本项目需要的元素移动上来。 document.body.appendChild($("#UU_UR_Win")[0]); document.body.appendChild($("#addnewFriendsGroup")[0]); //追加添加好友的函数 document.body.appendChild($("#UU_N_UProDiv")[0]); //个人信息面板 document.body.appendChild($("#UseStudioU_MP")[0]); //音乐面板 //document.body.appendChild($("#UseStudioUserDiskDiv")[0]);//硬盘面板 document.body.appendChild($("#UF_UP_UserBoard")[0]); //好友面板 document.body.appendChild($("#UDK_FUP")[0]); //flash上传面板 document.body.appendChild($("#UDK_UP")[0]); //普通文件上传面板,上传区分了2个,比较特殊 document.body.appendChild($("#UF_S_Div")[0]); //查找好友 document.body.appendChild($("#UF_GM_FMDiv")[0]); //好友管理面板 document.body.appendChild($("#UF_DM_AFSWindow")[0]); //添加好友面板 document.body.appendChild($("#UU_N_CD")[0]); //添加自己的头像设置 } //重写U.D.SetDTop,让包含编程端和1473主项目的div,不再置顶。 //框架到最顶层,已经出现的div,点击任何一个地方都可以置顶。。 //U.D.SetDTop = function (UEL) { // var _UE = U.M.GetEvent(); UEL = UEL || U.D.GetPD(_UE.srcElement); U.M.StopBubble(); //阻止冒泡 // if (UEL.id == "UCD_Contain" || UEL.id == "US_M_IF") return; // if (UEL && U.M.GetStyle(UEL, "position") == "absolute" && UEL.tagName.toLocaleLowerCase() == "div") { UEL.style.zIndex = (top.US.ZV++); } //} //本项目和桌面互相切换函数,参数t为空,则切换主项目,否则,切换回本项目,以后会添加更多切换类型 U.CD.OU.CHDesk = function (t) { var s = $("#US_M_DIV")[0], d = $("#UCD_Contain")[0]; if (t == "d") { (new U.Img.Animate()).LScreenSwitch(s, d, function () { U.CD.OU.CHButton("切换编程端", "c", s) }); } else { (new U.Img.Animate()).LScreenSwitch(d, s, function () { /*U.CD.OU.CHButton("切换到桌面","d",d);*/ }); } if ($("#UD_Chat")[0]) $("#UD_Chat")[0].style.display = "none"; //如果聊天框存在,让它不显示。 if ($("#UD_ZY")[0]) $("#UD_ZY")[0].style.display = "none"; } //向主项目添加一个切换回来的按钮,type是返回哪个界面的标示符,只有2个界面,以后可能会添加比较多。参数s是每个端具体的div U.CD.OU.CHButton = function (n, t, s) { if ($("#UCD_OT_QH")[0]) return; //如果存在,则不再添加 var a = $$("div", { "id": "UCD_OT_QH", "onclick": [[U.CD.OU.CHDesk, ([t])]] }, s); $$("div", { "className": "UD_NUB UCD_OT_QH_L" }, a); $$("div", { "className": "UCD_OT_QH_R", "innerHTML": n }, a); } //调用1473登录窗口,如果此元素是动态的,会直接加到body。如果是静态的,则需要把元素移动到body层。 U.CD.OU.Login = function () { U.D.DT.DLTC(3); } //把1473主项目异步登录函数赋予这个全局变量,然后就可以重写主项目的异步登录函数,让它同时执行1473登录和本项目登录。 U.CD.OU.LoginAsyn = U.U.L.AsynUlL; U.U.L.AsynUlL = function (request, TF) { U.CD.OU.LoginAsyn(request, TF); //执行1473登录回调。 U.CD.U.LoginAsyn(request); //执行本项目登录,由于会顺次执行,所以需要修改一些信息 } //执行用户退出操作 U.CD.OU.LogoutAsyn = U.U.L.TCUL; U.U.L.TCUL = function () { U.CD.OU.LogoutAsyn(); //主项目退出 U.CD.U.Logout(); //退出编程端 } //弹出个人信息面板 U.CD.OU.ProDiv = function () { U.D.DT.DKGEZL(); // U.U.UPD(); // U.D.SetDTop($("#UU_N_UProDiv")[0]); //置于顶层 } //异步获取新增用户,由于主项目模版只有9位,所以新做一个 U.CD.OU.GNU = function () { U.A.Request("UseStudioManage.NetAdditionData", (["27"]), U.CD.OU.GNUAsyn, ([""])); } //新增用户异步处理。 U.CD.OU.GNUAsyn = function (r) { r = r.value; if (r) { var _UDFD = document.createDocumentFragment(); _UDFD = $("#UCD_L_NU")[0]; _UDFD.innerHTML = ""; var l = r.length > 39 ? 39 : r.length; for (var i = 0; i < l; i++) { //$$("img", { "src": U.M.GetImgU(r[i].UserThumbnailImageHead), "title": r[i].UserNickName, "onerror": U.M.ImgError }, _UDFD); $$("img", { "src": U.M.GetImgU(r[i].UserThumbnailImageHead), "title": r[i].UserNickName, "onerror": U.M.ImgError, "onclick": [[U.M.StopBubble], [U.U.I.POUW, ([r[i].UserID])]] }, _UDFD); } } } //m为主版块id,c为子版块id U.CD.OU.Forum = function (m, c) { U.D.DT.YYDK("PB", ["3c779543-bc1a-4851-af22-af9ba97a5f33"]); // //(_UTF == null) && (_UTF = ["http://pb.1473.cn/PublicBoards.aspx?NavigatePath=" + UAF, [["window.frames['UseStudioStudyControlDivIframe'].U.BB.Navigateonload", ([UAF || ''])]]]); // //第2个参数好像没有用,按道理应该是主版块id // U.M.divdoubleClick('UseStudioStudyControlDiv', '28d8089d-ee85-4f9b-b1b6-8c1d8ccff719', null, null, 'SUB28d8089d-ee85-4f9b-b1b6-8c1d8ccff719'); // //U.M.divdoubleClick('UseStudioStudyControlDiv', '', null, null, 'SUB3c779543-bc1a-4851-af22-af9ba97a5f33'); // U.D.SetDTop($("#UseStudioStudyControlDiv")[0]); } //调用主项目回复信息,如果用户未登录,提示用户登录 U.CD.OU.Reply = function (id) { if (!U.MS.Guid.test(id)) { alert("评论id应该是guid"); return; } U.D.CM.CKPLXS(id, "编程平台"); } // 1、新项目引入1473需要做什么? // // // // // // // // // // // // // 2、跨域需要引用什么?怎么做 // // // // // // // // // //