`
gzcj
  • 浏览: 289791 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

子父窗口操作

阅读更多

 从网上找到的子父窗口操作 

 

一、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#编程中,父窗口和子窗口之间的控件互操作是常见的需求,尤其是在开发多窗口应用程序时。这种互操作性允许用户在不同窗口间传递数据、触发事件或执行特定功能,增强了用户体验。本文将详细讲解如何在C#中实现这一...

    Qt 子窗口父窗口切换,窗口间传值

    在Qt编程中,子窗口与父窗口之间的交互是常见的需求,包括窗口间的切换和数据传递。这涉及到Qt的窗口系统和信号与槽机制。本文将深入探讨如何在Qt环境中实现子窗口与父窗口的切换以及如何在窗口之间传递数据。 首先...

    子窗口与父窗口刷新

    在这样的场景下,用户在子窗口中操作并提交数据后,可能希望父窗口能即时显示最新的数据,而不是手动刷新整个页面。这种需求可以通过JavaScript的AJAX技术来实现。 首先,我们需要理解AJAX(Asynchronous ...

    子窗口刷新父窗口总结

    ### 子窗口刷新父窗口技术总结 在网页开发中,我们常常遇到需要在子窗口完成某些操作后,刷新或更新父窗口...通过适当的编程策略,可以有效地在子窗口操作完毕后,触发父窗口的刷新,提升用户体验和程序功能的连贯性。

    MFC子窗口和父窗口

    MFC 子窗口和父窗口关系详解 在 Windows 系统中,每个窗口对象都对应有一个数据结构,形成一个 list 链表。系统的窗口管理器通过这个 list 来获取窗口信息和管理每个窗口。这个数据结构中有四个数据用来构建 list,...

    Qt--子窗口向父窗口传值

    本主题将详细探讨如何在Qt中实现从子窗口(子对话框)向父窗口传递数据,具体涉及的主要文件包括`mainwindow.cpp`、`main.cpp`、`myform.cpp`、`logindlg.cpp`、`mainwindow.h`、`myform.h`、`logindlg.h`以及UI文件...

    模式窗口操作父窗口

    在探讨“模式窗口操作父窗口”这一主题时,我们首先需要理解模式窗口(Modal Window)的概念及其在用户界面设计中的作用。模式窗口是一种常见的UI组件,用于在当前应用的主窗口上显示一个对话框或子窗口,这个子窗口...

    子窗口传值到父窗口.rar

    这通常发生在弹出窗口或者框架集等场景中,用户在子窗口进行操作后,需要将结果反馈给父窗口,以便更新父窗口的状态或展示相关信息。这个过程就称为“子窗口传值到父窗口”。在JavaScript中,我们可以利用多种方法...

    js(javascript)子窗口和父窗口交互

    ### JavaScript 子窗口与父窗口交互详解 在前端开发中,常常会遇到需要在一个窗口(通常称为父窗口)中打开另一个窗口(子窗口)的情况。这时,如何实现这两个窗口之间的数据交互便成了一个重要的问题。根据题目...

    在固定位置创建子窗口,点击父窗口自动隐藏子窗口

    这个场景中的“在固定位置创建子窗口,点击父窗口自动隐藏子窗口”涉及到了窗口管理、事件处理以及窗口之间的通信等多方面的知识点。 1. **窗口管理**:窗口管理是操作系统或应用程序中用于控制窗口显示和操作的...

    HTML中IFrame父窗口与子窗口相互操作

    2. **子窗口操作父窗口的大小**: - **最大化**:通过设置窗口的位置和大小,例如`win.moveTo(-4,-4);win.resizeTo(screen.availWidth+8,screen.availHeight+8);`。 - **最小化**:将窗口大小设置为0,例如`win....

    javascript经典特效---子窗口对父窗口的操作.rar

    JavaScript是一种广泛应用...总之,JavaScript提供的窗口操作能力使得子窗口与父窗口之间的通信变得可能,这对于构建动态和交互丰富的Web应用至关重要。通过深入研究这个主题,开发者能够创建更加灵活和响应式的网页。

    HTML 父窗口打开子窗口,并接收子窗口返回的值.zip

    确保在父窗口中设置适当的事件监听器,以便在接收到子窗口的消息时执行相应的操作。 放置这些文件在一个web服务器如nginx的HTML目录下是必要的,因为浏览器的同源策略(Same-Origin Policy)限制了跨域访问,而本地...

    子父窗口传值

    在IT开发领域,尤其是Web应用开发中,子父窗口之间的数据通信是一个常见的需求。 FineUI 是一个基于jQuery的Web UI库,提供了丰富的组件和交互功能,使得开发者能够更方便地构建用户界面。在这个场景中,"子父窗口...

    JavaScript操作iframe父窗口和子窗口例子

    JavaScript操作iframe父窗口和子窗口是一种常见的Web开发技术,它涉及到网页交互和页面通信。在Web应用程序中,iframe(Inline Frame)常用于嵌入其他网页或者实现页面的局部刷新,而父窗口与子窗口之间的通信则能...

    子窗口向父窗口传递值

    总结一下,子窗口向父窗口传递值主要依赖于`window.parent`和`window.opener`这两个属性,它们允许子窗口访问并操作父窗口的DOM元素。通过结合查询字符串传递初始数据和JavaScript操作,可以实现复杂的跨窗口通信。...

    在父窗口不透明的情况下,实现子窗口的半透明效果

    本文将探讨如何在父窗口不透明的情况下,实现子窗口的半透明效果,这是一个巧妙的方法,绕过了MSDN中提到的限制。 首先,我们了解一个基本概念:在Windows API中,子窗口的透明性是受其父窗口的影响。这意味着如果...

    c#利用委托来实现关闭子窗口通知父窗口执行方法

    ### C#中利用委托实现子窗口关闭时通知父窗口执行特定方法 在C#中,事件和委托是非常重要的概念,特别是在处理用户界面交互时。本文将详细介绍如何利用委托(Delegate)来实现在关闭子窗口时通知父窗口执行特定的...

    Qt6:子窗口向父窗口传值(多控件版)

    子窗口向父窗口传递数据是常见的操作,例如用户在子窗口中填写表单后,点击确认按钮,将表单数据传回父窗口进行进一步处理。本文将详细介绍如何实现这一功能。 首先,我们需要了解Qt中的信号和槽机制。这是Qt进行...

    子父窗口传值动态添加行

    这个场景下,"子父窗口传值--动态添加行"涉及到的技术点主要是JavaScript中的跨窗口通信以及DOM操作,主要应用于Web应用的交互设计。 首先,让我们了解什么是子父窗口。在浏览器环境中,一个窗口可以打开另一个窗口...

Global site tag (gtag.js) - Google Analytics