`

转 iframe 子 父类窗口操作

阅读更多

 

一、Iframe
原博客网址:http://www.cnblogs.com/haojianwei/archive/2010/03/02/1676707.html

//&&&&&&&&&&&&&&&&&&&&公共方法开始&&&&&&&&&&&&&&&

//父对象得到子窗口的值

//ObjectID是窗口标识,ContentID是元素ID

function GetValue(ObjectID,ContentID)

{

var IsIE = (navigator.appName == 'Microsoft Internet Explorer')

if(IsIE)

{//如果是IE

alert(document.frames(ObjectID).document.getElementById(ContentID).innerHTML);

}

else

{//如果是FF

alert(document.getElementById(ObjectID).contentDocument.getElementById(ContentID).innerHTML);

//FF下不支持innerText;下面是解决方法

//if(document.all){

//  alert(document.getElementById('div1').innerText);

//} else{

// alert(document.getElementById('div1').textContent);

//}

}

}

 

//父对象向子窗口赋值

//ObjectID是窗口标识,ContentID是元素ID

function SetValue(ObjectID,ContentID)

{

var IsIE = (navigator.appName == 'Microsoft Internet Explorer')

if(IsIE)

{//如果是IE

document.frames(ObjectID).document.getElementById(ContentID).innerHTML="我是IE下通过父窗口赋值过来的";

}

else

{//如果是FF

document.getElementById(ObjectID).contentDocument.getElementById(ContentID).innerHTML="我是FF下通过父窗口赋值过来的";

}

}

//&&&&&&&&&&&&&&&&&&&&公共方法结束&&&&&&&&&&&&&&&

 

 

1.父窗口对子窗口操作

 

刷新:

document.getElementById("IframeID").src=document.getElementById("IframeID").src+"?_="+Math.random();

上面这种方法有时需要对“src”属性处理一下。

 

取值:

//父窗口取子窗口的值

GetValue("Iframe1","IframeDiv");

 

赋值:

//父窗口设置窗口元素的值;

SetValue("Iframe1","IframeDiv");

 

2.子窗口操作父窗口

刷新:

(1)window.parent.location.href=window.parent.location.href;

(2)window.parent.location.reload();

(3)、大家可以补充

 

取值:

alert(window.parent.document.getElementById("IframeDiv").innerHTML);

 

赋值:

window.parent.document.getElementById("IframeDiv").innerHTML="我是从子窗口IFRAME传过来的值";

 

关闭:

window.parent.opener=null;//如果不加这句,会提示关闭询问窗口;

window.parent.close();

二、window.open

1.父窗口对子窗口操作

打开:

var win=null;

win=window.open("Open.html","win","width=200,height=200");

 

最大化:

//窗口最大化

function SonMaximize()

{

if(win&&win.open&&!win.closed)

{

win.moveTo(-4,-4);

win.resizeTo(screen.availWidth+8,screen.availHeight+8);

}else{

alert('还没有打开窗口或已经关闭');

}

}

 

最小化:

//窗口最小化

function SonMinimize()

{

if(win&&win.open&&!win.closed)

{

win.resizeTo(0,0);

win.moveTo(0,window.screen.width);

}else{

alert('还没有打开窗口或已经关闭');

}

}

 

 

 

关闭:

//关闭窗口

function CloseSon()

{

if(win&&win.open&&!win.closed)

{

win.opener=null;

win.close()

}else{

alert('还没有打开窗口或已关闭') ;

}

}

 

刷新:

//刷新

function RefreshSon()

{

if(win&&win.open&&!win.closed)

{

win.location.reload();

win.focus();

}else{

alert('窗口还没有打开或已关闭');

}

}

 

查看窗口大小:

function ViewSonSize()

{

if(win&&win.open&&!win.closed)

{

alert(win.document.body.clientWidth+'*'+win.document.body.clientHeight);

win.focus();

}else

{

alert('还没有打开窗口或者已关闭');

}

}

 

取值:

alert(window.document.getElementById("OpenDiv").innerHTML);

 

赋值:

win.document.getElementById("OpenDiv").innerHTML="我是从父窗口中传过来的值";

 

2.子窗口操作窗口

刷新:

window.opener.location.reload();

//下面这种方法也可以

//window.parent.location.href=window.parent.location.href;

关闭本窗口:

//关闭本窗口

function CloseWindow()

{ //window.opener.opener=null;

window.close();

}

 

关闭父窗口:

//关闭父窗口

function CloseParent()

{ //火狐下不起作用,如果要想起作用。用下面的方法

//firefox,在地址栏输入about:config

//找到dom.allow_scripts_to_close_windows这项并改为true

var IsIE = (navigator.appName == 'Microsoft Internet Explorer')

if(IsIE){//如果是IE

window.opener.opener=null;

window.opener.close();

window.close();

}else{

alert("火狐不能直接关闭;需要以下设置1.firefox,在地址栏输入about:config;2.找到dom.allow_scripts_to_close_windows这项并改为true");

}

 

}

 

取值:

alert(window.opener.document.getElementById("OpenDiv").innerHTML);

 

赋值:

window.opener.document.getElementById("OpenDiv").innerHTML="我是从子窗口Open传过来的值";

 

三、模态窗口篇

1.父窗口操作子窗口

父窗口JS代码:

var parValue="现在显示了父窗口中的变量值";

var hao="郝建卫";

function ShowDailog(PageHref,Title,Height,Width)

{

//--------------left位置

//screen.availHeight声明了显示浏览器的屏幕的可用宽度

var dleft =(screen.availHeight-Height)/2;

//--------------top位置

var dtop=(screen.availWidth-Width)/2;

//---------------

 

Var sRet = window.showModalDialog(PageHref,window,Title,"scrollbars=yes;resizable=no;help=no;status=no;center=yes;dialogTop=25;dialogLeft="+ dleft +";dialogTop="+ dtop +";dialogHeight="+Height+"px;dialogWidth="+Width+"px;");

//--------return

if (sRet =="refresh")//这种是利用返回值来刷新父页面

{

window.Test="true";

window.location.reload();

alert(window.Test);

}

}

functiontest()

{

alert("模态窗口成功调用父窗口的方法");

}

2.模态窗口操作父窗口

var parentWin=window.dialogArguments;

 

刷新:

parentWin.location.reload();

 

取值:

alert(parentWin.document.getElementById("ShowModalDialogDiv").innerHTML) //获取父窗口中的对象

alert("我是从父窗口中得到的变量>>>"+parentWin.parValue); //获取父窗口中的变量

 

调用父窗口JS方法:

parentWin.test(); //调用父窗口中的方法

 

赋值:

parentWin.document.getElementById("ShowModalDialogDiv").innerHTML="我是从子窗口ShowModalDialog传过来的值";

关闭本窗口:

//关闭本窗口

function CloseWindow()

{

window.parent.close();

}

 

关闭父窗口:

//关闭父窗口

function CloseModal()

{

var IsIE = (navigator.appName == 'Microsoft Internet Explorer')

if(IsIE){//如果是IE

window.parent.parent.close();

//parentWin.opener=null;如果把上面的换成这行,不能关闭父窗口,

parentWin.close();

//window.parent.parent.parent.parent.close();这个只能关闭模态窗口本身目前只在IE6下测试

}else{

alert("火狐不能直接关闭;需要以下设置1.firefox,在地址栏输入about:config;2.找到dom.allow_scripts_to_close_windows这项并改为true");

}

}

分享到:
评论

相关推荐

    iframe弹出框遮罩父类页面

    在网页开发中,有时我们需要实现一个功能,即在iframe中打开一个新的弹出窗口,并且这个弹出窗口能够遮罩住其父级页面,提供一种更好的用户体验。标题"iframe弹出框遮罩父类页面"正是关于这个技术点的讨论。在描述中...

    iframe中子父类窗口调用JS的方法及注意事项

    本文将详细介绍如何在iframe中实现子窗口与父窗口间的JavaScript方法调用以及在操作过程中需要注意的事项。 首先,了解基本的iframe标签结构对于掌握子父窗口间的JS调用非常重要。一个简单的iframe标签可能如下所示...

    jquery、js调用iframe父窗口与子窗口元素的方法整理.docx

    jquery、js调用iframe父窗口与子窗口元素的方法整理 在Web开发中,iframe是一个常用的技术,用于在一个HTML文档中嵌入另一个HTML文档。然而,在使用iframe时,经常会遇到一个问题:如何在iframe中访问父窗口的元素...

    jquery、js调用iframe父窗口与子窗口元素的方法整理

    在网页开发中,有时我们需要在不同的窗口或者框架之间进行交互,比如在iframe子窗口操作父窗口的元素,或者反之。本文将详细介绍如何使用jQuery和JavaScript来实现这种跨窗口的元素操作。 1. **jQuery在iframe子...

    div+iframe弹出窗口:可最大化、最小化,可拖拽,带遮罩功能

    div+iframe做出的弹出窗口,效果等同于模态窗口。弹出窗口可最大化、最小化,可拖拽。带遮罩功能。 解决替换模态窗口,避免模态调模态出现的一系列问题:session丢失,提交返回,调父类方法层级多了或者多页面调的...

    layer弹出层父子页面事件相互调用方法

    在弹出层成功打开后,使用layer.getChildFrame获取子页面的body,然后通过iframe的窗口对象执行子页面的方法。例如: ```javascript $("#parentIframe").click(function(){ var a = $(this).attr("data-url"); ...

    layer.open关闭父窗口 以及调用父页面的方法

    //关闭iframe页面 var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 parent.layer.close(index); //父类方法 function exportData(shownum,splitstr){ //TODO } 以上这篇layer.open关闭父窗口 ...

    jQuery子窗体取得父窗体元素的方法

    特别是当页面使用了iframe、弹出窗口(window.open)或模态对话框(showModelDialog)的时候,如何从子窗体访问并操作父窗体的元素就显得尤为重要。本文将详细介绍如何使用jQuery来实现这一需求。 首先,要在子窗体...

    Python Webdriver Exceptions Cheat Sheet By 灰蓝.pdf

    这个异常的父类是WebDriverException,当尝试切换到的目标(如frame或window)不存在时会抛出。 3. NoSuchFrameException 当尝试使用switch_to.frame()方法切换到一个不存在的frame时,会抛出该异常。 4. ...

    js代码-实现一个 instanceof

    在实际应用中,`instanceof`还会处理跨窗口或iframe的构造函数引用问题,这需要更复杂的实现。通常,全局构造函数在不同环境中可能有不同的引用,因此我们需要查找全局构造函数的正确引用。但是,这个简单的实现已经...

Global site tag (gtag.js) - Google Analytics