123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
-
- 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、跨域需要引用什么?怎么做
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
|