Posted in Javascript onJune 19, 2013
//打开模态窗口 function dialog(obj){ if(obj.url == undefined || obj.url == null){ throw new Error("please set obj.url"); } var url = obj.url; if(url.indexOf("?")!=-1){ url = url+ "&r_=" + Math.random(); }else { url = url+ "?r_=" + Math.random(); } //alert(obj.width + "," + obj.height + "," + obj.top + "," + obj.left); var w ; if(!obj.width){ w = screen.width/2; }else{ w = parseInt(obj.width); } var h ; if(!obj.height){ h = 500; }else{ h = parseInt(obj.height); } var t ; if(!obj.top){ t = 50; }else{ t = parseInt(obj.top); } var l; if(!obj.left){ l = (screen.width - parseInt(w))/2; }else{ l = parseInt(obj.left); } w = parseInt(w) + "px"; h = parseInt(h) + "px"; l = parseInt(l) + "px"; t = parseInt(t) + "px"; var paramStr = ""; paramStr += ("dialogHeight=" + h + ";"); paramStr += ("dialogWidth=" + w + ";"); if(obj.center != undefined && obj.center != null){ paramStr += "center=" + obj.center + ";" }else{ paramStr += ("dialogTop=" + t + ";"); paramStr += ("dialogLeft=" + l + ";"); } paramStr += "resizable=yes;scroll=yes"; //alert(paramStr); var rv = window.showModalDialog(url,window,paramStr); if (rv == undefined) { rv = window.returnValue; } if(obj.cb){ return obj.cb.call(rv,rv); } return rv; } function openWin(u,w,h){ var obj = { url : u, width : w, height : h } return dialog(obj); } function openWinWithCallBack(u,w,h,fun){ var obj = { url : u, width : w, height : h, cb : fun } return dialog(obj); } function openWindow(obj){ if(obj.url == undefined || obj.url == null){ throw new Error("please set obj.url"); } var url = obj.url; if(url.indexOf("?")!=-1){ url = url+ "&r_=" + Math.random(); }else { url = url+ "?r_=" + Math.random(); } //alert(obj.width + "," + obj.height + "," + obj.top + "," + obj.left); var w ; if(!obj.width){ w = screen.width/2; }else{ w = parseInt(obj.width); } var h ; if(!obj.height){ h = 500; }else{ h = parseInt(obj.height); } var t ; if(!obj.top){ t = 50; }else{ t = parseInt(obj.top); } var l; if(!obj.left){ l = (screen.width - parseInt(w))/2; }else{ l = parseInt(obj.left); } w = parseInt(w); h = parseInt(h); l = parseInt(l); t = parseInt(t); //窗口句柄 var name; if(!obj.name){ name = "win_" + new Date().getTime(); }else{ name = obj.name; } //alert(name); //是否可以改变窗口大小 var resizable = obj.resizable || "no"; //是否有滚动条 var scrollbars= obj.scrollbars || "yes"; //是否有状态栏 var status = obj.status || "no"; //是否有菜单栏 var menubar = obj.menubar || "no"; //是否有工具栏 var toolbar = obj.toolbar || "no"; //是否有地址栏 var locations = obj.locations || "yes"; return window.open (url,name,"height=" + h + ",width=" + w + ",top=" + t + ",left=" + l + ",toolbar=" + toolbar + ",menubar=" + menubar + ",scrollbars=" + scrollbars + ", resizable=" + resizable + ",location=" + locations + ", status=" + status + ",hotkeys=esc"); } //模态窗口打开模式的子页面获取父页面对象 function getParent(){ var p = ""; if (window.opener != undefined) { p = window.opener; } else { p = window.dialogArguments; }; return p; } //模态窗口打开模式的子页面设置returnValue function setReturnValue(v){ if (window.opener != undefined) { window.opener.returnValue = v; } else { window.returnValue = v; }; } //滑动门 function ScrollDoor(){ this.value = 0; } ScrollDoor.prototype = { onlyMenu : function(menus,openClass,closeClass){ // only menu no have content var _this = this; for(var i = 0 ; i < menus.length ; i++) { _this.$(menus[i]).flag = ++this.value; _this.$(menus[i]).value = i; _this.$(menus[i]).onclick = function(){ for(var j = 0 ; j < menus.length ; j++) { _this.$(menus[j]).className = closeClass; //_this.$(divs[j]).style.display = "none"; } _this.$(menus[this.value]).className = openClass; //_this.$(divs[this.value]).style.display = "block"; } } }, sd : function(menus,divs,openClass,closeClass){// two class var _this = this; if(menus.length != divs.length) { alert("菜单层数量和内容层数量不一样!"); return false; } for(var i = 0 ; i < menus.length ; i++) { _this.$(menus[i]).flag = ++this.value; _this.$(menus[i]).value = i; _this.$(menus[i]).onclick = function(){ for(var j = 0 ; j < menus.length ; j++) { _this.$(menus[j]).className = closeClass; _this.$(divs[j]).style.display = "none"; } _this.$(menus[this.value]).className = openClass; _this.$(divs[this.value]).style.display = "block"; } } }, sd3class : function(menus,divs,openClass,closeClass,middleClass){ //three class var _this = this; for(var x = 0 ; x < menus.length ; x++) { _this.$(menus[x]).state = _this.$(menus[x]).className == openClass ? "open" : "close"; } if(menus.length != divs.length) { alert("菜单层数量和内容层数量不一样!"); return false; } for(var i = 0 ; i < menus.length ; i++) { _this.$(menus[i]).flag = ++this.value; _this.$(menus[i]).value = i; _this.$(menus[i]).onclick = function(){ for(var j = 0 ; j < menus.length ; j++) { _this.$(menus[j]).className = closeClass; _this.$(divs[j]).style.display = "none"; _this.$(menus[j]).state = "close"; } this.state = "open"; _this.$(menus[this.value]).className = openClass; _this.$(divs[this.value]).style.display = "block"; } _this.$(menus[i]).onmouseover = function(){ //alert(this.state); for(var j = 0 ; j < menus.length ; j++) { if(_this.$(menus[j]).state != "open") { _this.$(menus[j]).className = closeClass; _this.$(menus[j]).state = "close"; } } if(this.state == "open") { } else { this.className = middleClass; } } _this.$(menus[i]).onmouseout = function(){ if(this.state != "open") { this.className = closeClass; } } } }, $ : function(oid){ if(typeof(oid) == "string") return document.getElementById(oid); return oid; } }
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@