首頁  >  文章  >  web前端  >  解析js中獲得父視窗連結getParent方法以及各種開啟視窗的方法_基礎知識

解析js中獲得父視窗連結getParent方法以及各種開啟視窗的方法_基礎知識

WBOY
WBOY原創
2016-05-16 17:31:531377瀏覽

複製程式碼 程式碼如下:

//打开模态窗口
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 : ftion( ,openClass,closeClass){ // 只有選單沒有內容
var _this = this;
for(var i = 0 ; i {
_this.$ (menus [i]).flag = this.value;
_this.$(menus[i]).value = i;
_this.$(menus[i]).onclick = function(){
for(var j = 0 ; 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){// 兩個類別
var _this = this ;
if(menus.length != divs.length)
{
alert("選單層數量和內容層數量不一樣!");
return false;
}
for (var i = 0 ; i {
_this.$(menus[i]).flag = this.value;
_this.$(menus[i] ]) .value = i;
_this.$(menus[i]).onclick = function(){
for(var j = 0 ; 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){ //三個類別
var _this = this;
for(var x = 0 ; 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 {
_this.$(menus[i]).flag = this.value ;
_this.$(menus[i]).value = i;
_this.$(menus[i]).onclick = function(){
for(var j = 0 ; j {
_this.$ ( menus[j]).className = closeClass;
_this.$(divs[j]).style.display = "none";
_this.$(menus[j]).state = "關閉" ;
}
this.state = "開啟";
_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 {
if(_this.$(menus[j]).state != "開")
{
_this.$(menus[ j]). className = closeClass;
_this.$(menus[j]).state = "關閉";
}
}
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);
回傳oid;
}
}

}}}}}}
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn