解决 jQuery 实现父窗口的问题 如window.parent.document.getElementById().innerHTML

87281248 2012-07-05

functiontipsWindown(title,content,width,height,drag,time,showbg,cssName){

$("#windown-box").remove();//请除内容

varwidth=width>=950?this.width=950:this.width=width;//设置最大窗口宽度

varheight=height>=527?this.height=527:this.height=height;//设置最大窗口高度

if(showWindown==true){

varsimpleWindown_html=newString;

simpleWindown_html="";

simpleWindown_html+="";

simpleWindown_html+="关闭";

simpleWindown_html+="";

simpleWindown_html+="";

$("body").append(simpleWindown_html);

show=false;

}

contentType=content.substring(0,content.indexOf(":"));

content=content.substring(content.indexOf(":")+1,content.length);

switch(contentType){

case"text":

$("#windown-content").html(content);

break;

case"id":

$("#windown-content").html($("#"+content+"").html());

break;

case"img":

$("#windown-content").ajaxStart(function(){

$(this).html("");

});

$.ajax({

error:function(){

$("#windown-content").html("加载数据出错...");

},

success:function(html){

$("#windown-content").html("");

}

});

break;

case"url":

varcontent_array=content.split("?");

$("#windown-content").ajaxStart(function(){

$(this).html("");

});

$.ajax({

type:content_array[0],

url:content_array[1],

data:content_array[2],

error:function(){

$("#windown-content").html("加载数据出错...");

},

success:function(html){

$("#windown-content").html(html);

}

});

break;

case"iframe":

$("#windown-content").ajaxStart(function(){

$(this).html("");

});

$.ajax({

error:function(){

$("#windown-content").html("加载数据出错...");

},

success:function(html){

$("#windown-content").html("");

}

});

}

$("#windown-titleh2").html(title);

if(showbg=="true"){$("#windownbg").show();}else{$("#windownbg").remove();};

$("#windownbg").animate({opacity:"0.5"},"normal");//设置透明度

$("#windown-box").show();

if(height>=527){

$("#windown-title").css({width:(parseInt(width)+22)+"px"});

$("#windown-content").css({width:(parseInt(width)+17)+"px",height:height+"px"});

}else{

$("#windown-title").css({width:(parseInt(width)+10)+"px"});

$("#windown-content").css({width:width+"px",height:height+"px"});

}

varcw=document.documentElement.clientWidth,ch=document.documentElement.clientHeight,est=document.documentElement.scrollTop;

var_version=$.browser.version;

if(_version==6.0){

$("#windown-box").css({left:"50%",top:(parseInt((ch)/2)+est)+"px",marginTop:-((parseInt(height)+53)/2)+"px",marginLeft:-((parseInt(width)+32)/2)+"px",zIndex:"999999"});

}else{

$("#windown-box").css({left:"50%",top:"50%",marginTop:-((parseInt(height)+53)/2)+"px",marginLeft:-((parseInt(width)+32)/2)+"px",zIndex:"999999"});

};

varDrag_ID=document.getElementById("windown-box"),DragHead=document.getElementById("windown-title");

varmoveX=0,moveY=0,moveTop,moveLeft=0,moveable=false;

if(_version==6.0){

moveTop=est;

}else{

moveTop=0;

}

varsw=Drag_ID.scrollWidth,sh=Drag_ID.scrollHeight;

DragHead.onmouseover=function(e){

if(drag=="true"){DragHead.style.cursor="move";}else{DragHead.style.cursor="default";}

};

DragHead.onmousedown=function(e){

if(drag=="true"){moveable=true;}else{moveable=false;}

e=window.event?window.event:e;

varol=Drag_ID.offsetLeft,ot=Drag_ID.offsetTop-moveTop;

moveX=e.clientX-ol;

moveY=e.clientY-ot;

document.onmousemove=function(e){

if(moveable){

e=window.event?window.event:e;

varx=e.clientX-moveX;

vary=e.clientY-moveY;

if(x>0&&(x+sw0&&(y+sh<ch)){

Drag_ID.style.left=x+"px";

Drag_ID.style.top=parseInt(y+moveTop)+"px";

Drag_ID.style.margin="auto";

}

}

}

document.onmouseup=function(){moveable=false;};

Drag_ID.onselectstart=function(e){returnfalse;}

}

$("#windown-content").attr("class","windown-"+cssName);

varcloseWindown=function(){

$("#windownbg").remove();

$("#windown-box").fadeOut("slow",function(){$(this).remove();});

}

if(time==""||typeof(time)=="undefined"){

$("#windown-close").click(function(){

return;//Eman封锁了此关闭事件。

$("#windownbg").remove();

$("#windown-box").fadeOut("slow",function(){$(this).remove();});

});

}else{

setTimeout(closeWindown,time);

}

}

-----------------------tipswindown.js---///////////////////////

因为先前遇到的问题,所以我考虑采用IFRAME来隔离不同的脚本,从而实现我需要的效果。

在框架中,我用JavaScript获取JSON数据,组织成HTML代码,最后将其填充至上层文档的一个元素中。按照一般的写法,我们需要用到类似如下的语句:使用jQuery,写法如下:即指明了是在window.parent.document中查找id=myEle的元素。

随着前面的问题的解决(其实是对jQuery的了解不够),现在两种方案都可以实现我需要的效果了。

另外还有一种实现方式,代码如下:这种方法要求父文档也要调用jQuery。

演示:使用jQuery实现window.parent.document.getElementById().innerHTML

个人感觉jquery就是强啦!!!

相关推荐

Web全栈笔记 / 0评论 2020-06-15