从网上找到的子父窗口操作
一、Iframe 篇
//&&&&&&&&&&&&&&&&&&&&公共方法开始&&&&&&&&&&&&&&&
//父对象得到子窗口的值
//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);
}
}
function test()
{
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");
}
}
分享到:
相关推荐
在C#编程中,父窗口和子窗口之间的控件互操作是常见的需求,尤其是在开发多窗口应用程序时。这种互操作性允许用户在不同窗口间传递数据、触发事件或执行特定功能,增强了用户体验。本文将详细讲解如何在C#中实现这一...
在Qt编程中,子窗口与父窗口之间的交互是常见的需求,包括窗口间的切换和数据传递。这涉及到Qt的窗口系统和信号与槽机制。本文将深入探讨如何在Qt环境中实现子窗口与父窗口的切换以及如何在窗口之间传递数据。 首先...
在这样的场景下,用户在子窗口中操作并提交数据后,可能希望父窗口能即时显示最新的数据,而不是手动刷新整个页面。这种需求可以通过JavaScript的AJAX技术来实现。 首先,我们需要理解AJAX(Asynchronous ...
### 子窗口刷新父窗口技术总结 在网页开发中,我们常常遇到需要在子窗口完成某些操作后,刷新或更新父窗口...通过适当的编程策略,可以有效地在子窗口操作完毕后,触发父窗口的刷新,提升用户体验和程序功能的连贯性。
MFC 子窗口和父窗口关系详解 在 Windows 系统中,每个窗口对象都对应有一个数据结构,形成一个 list 链表。系统的窗口管理器通过这个 list 来获取窗口信息和管理每个窗口。这个数据结构中有四个数据用来构建 list,...
本主题将详细探讨如何在Qt中实现从子窗口(子对话框)向父窗口传递数据,具体涉及的主要文件包括`mainwindow.cpp`、`main.cpp`、`myform.cpp`、`logindlg.cpp`、`mainwindow.h`、`myform.h`、`logindlg.h`以及UI文件...
在探讨“模式窗口操作父窗口”这一主题时,我们首先需要理解模式窗口(Modal Window)的概念及其在用户界面设计中的作用。模式窗口是一种常见的UI组件,用于在当前应用的主窗口上显示一个对话框或子窗口,这个子窗口...
这通常发生在弹出窗口或者框架集等场景中,用户在子窗口进行操作后,需要将结果反馈给父窗口,以便更新父窗口的状态或展示相关信息。这个过程就称为“子窗口传值到父窗口”。在JavaScript中,我们可以利用多种方法...
### JavaScript 子窗口与父窗口交互详解 在前端开发中,常常会遇到需要在一个窗口(通常称为父窗口)中打开另一个窗口(子窗口)的情况。这时,如何实现这两个窗口之间的数据交互便成了一个重要的问题。根据题目...
这个场景中的“在固定位置创建子窗口,点击父窗口自动隐藏子窗口”涉及到了窗口管理、事件处理以及窗口之间的通信等多方面的知识点。 1. **窗口管理**:窗口管理是操作系统或应用程序中用于控制窗口显示和操作的...
2. **子窗口操作父窗口的大小**: - **最大化**:通过设置窗口的位置和大小,例如`win.moveTo(-4,-4);win.resizeTo(screen.availWidth+8,screen.availHeight+8);`。 - **最小化**:将窗口大小设置为0,例如`win....
JavaScript是一种广泛应用...总之,JavaScript提供的窗口操作能力使得子窗口与父窗口之间的通信变得可能,这对于构建动态和交互丰富的Web应用至关重要。通过深入研究这个主题,开发者能够创建更加灵活和响应式的网页。
确保在父窗口中设置适当的事件监听器,以便在接收到子窗口的消息时执行相应的操作。 放置这些文件在一个web服务器如nginx的HTML目录下是必要的,因为浏览器的同源策略(Same-Origin Policy)限制了跨域访问,而本地...
在IT开发领域,尤其是Web应用开发中,子父窗口之间的数据通信是一个常见的需求。 FineUI 是一个基于jQuery的Web UI库,提供了丰富的组件和交互功能,使得开发者能够更方便地构建用户界面。在这个场景中,"子父窗口...
JavaScript操作iframe父窗口和子窗口是一种常见的Web开发技术,它涉及到网页交互和页面通信。在Web应用程序中,iframe(Inline Frame)常用于嵌入其他网页或者实现页面的局部刷新,而父窗口与子窗口之间的通信则能...
总结一下,子窗口向父窗口传递值主要依赖于`window.parent`和`window.opener`这两个属性,它们允许子窗口访问并操作父窗口的DOM元素。通过结合查询字符串传递初始数据和JavaScript操作,可以实现复杂的跨窗口通信。...
本文将探讨如何在父窗口不透明的情况下,实现子窗口的半透明效果,这是一个巧妙的方法,绕过了MSDN中提到的限制。 首先,我们了解一个基本概念:在Windows API中,子窗口的透明性是受其父窗口的影响。这意味着如果...
### C#中利用委托实现子窗口关闭时通知父窗口执行特定方法 在C#中,事件和委托是非常重要的概念,特别是在处理用户界面交互时。本文将详细介绍如何利用委托(Delegate)来实现在关闭子窗口时通知父窗口执行特定的...
子窗口向父窗口传递数据是常见的操作,例如用户在子窗口中填写表单后,点击确认按钮,将表单数据传回父窗口进行进一步处理。本文将详细介绍如何实现这一功能。 首先,我们需要了解Qt中的信号和槽机制。这是Qt进行...
这个场景下,"子父窗口传值--动态添加行"涉及到的技术点主要是JavaScript中的跨窗口通信以及DOM操作,主要应用于Web应用的交互设计。 首先,让我们了解什么是子父窗口。在浏览器环境中,一个窗口可以打开另一个窗口...