本文主要对防止模式对话框弹出新子窗口,和父子窗口间的通信进行介绍。
比如,如下代码是子窗口(模式窗口)的jsp中的js代码。
function test() {
var flag = document.getElementById("key");
if (flag.value == "true") {
window.returnValue = true;
window.close(); }
}
"key"是jsp页面中某标签的id,比如其可以是<s:hidden name="key" value="value1">,其中value1是action中的某个返回属性,当value1=true时,子窗口就向父窗口返回true并关闭该子窗口(调用window.close();).
上面光给出了子窗口中的js代码,下面给出子窗口中的jsp代码,比如jsp代码为:
<s:form action="test" target="heihei">
<s:hidden name="key" value="%{value1}"/>
..............................
</s:form>
<script language="javascript" type="text/javascript">
<!--
window.name='heihei';
test();
//-->
</script>
上面<script language="javascript" type="text/javascript"></script>
中的window.name=“heihei”;就是防止子窗口重新再另外打开一个子窗口的。并且window.name="heihei"中的"heihei"要和表单<s:form action="test" target="heihei">中的target的值(”heihei“)相同,简而言之就是,每次打开的子窗口都是当前窗口,即是在target指定的窗口中打开。要实现在模态子窗口中传值到父窗口,需要使用window.returnValue完成
在父窗口中就可以得到该子窗口返回的值,其得到方式为:
var newWin=window.showModelDialog(url,window,'');当上面的子窗口返回为ture是,父窗口中的值newWin的值就为true否则为false。函数window.showModelDialog(url,window,'')中的第一个参数可以是一个action(比如:test.action或"test.shtml?page=1"),也可以是一个具体的jsp(test.jsp)页面。
1. 在子窗口中:
//获取父窗口某字段值,对该值加一后返回父窗口
var parent=window.dialogArguments;
var x=parent.docuement.getElementById("age").value;
x=x+1;
//传回x值
window.returnValue=x;
2.在父窗口中:
//获取来自子窗口的值,并把其赋给某个对象
var newWin=window.showModelDialog(url,window,'');
if(newWin!=null)
document.getElementById("age").value=newWin;
3.子窗口设置父窗口的值使用方法如下:
子窗口中:
//age是父窗口中的某标签对象的id
var parent=window.dialogArguments;
var x=parent.document.getElementById("age").value;
x=x+1;
//设置父窗口中age属性值
parent.document.getElementById("age").value=x;
走笔至此!
分享到:
相关推荐
本主题将深入探讨“非模式对话框与父窗体之间消息通信”以及“设置透明窗体”的相关知识。 首先,我们来理解模式对话框(Modal Dialog Box)和非模式对话框(Modeless Dialog Box)的区别。模式对话框是一种阻止...
"QT父子窗口相互传值"这个主题,主要涉及Qt框架中如何有效地实现这种通信机制。本篇文章将详细探讨Qt窗口之间传递数据的方法和技巧,对初学者来说尤其具有指导意义。 首先,让我们理解Qt中的窗口对象关系。在Qt中,...
在PyQt5编程中,父子窗口间的通信是一个常见的需求,特别是在设计多窗口应用程序时。"pyqt父子窗口相互传值"这个主题就是关于如何在不同的QMainWindow或QWidget实例之间传递数据。下面将详细讲解这个过程,并提供一...
7. 自定义消息:如果需要更复杂的通信,开发者可以定义自定义的消息,并在父子对话框间发送。 8. 关闭子对话框:父对话框通常需要监听子对话框的关闭事件,以便在子对话框关闭后执行相应的清理工作。 视频文件...
以上代码展示了如何使用`window.postMessage`进行父子窗口间的通信。 **安全性和最佳实践:** - 为了安全,使用`postMessage`时应验证`event.origin`以确保消息来自预期的源。 - 避免过度依赖cookies或URL参数,...
- 父子窗口结构常用于实现对话框、多文档界面(MDI)应用、分页控件等。 - 例如,一个文本编辑器可能有一个主窗口作为父窗口,而打开的每个文件窗口则作为子窗口。 理解并熟练运用父子窗口的概念和实现方式对于...
本主题主要涵盖了三个关键知识点:CListCtrl控件的应用,模态和非模态对话框的使用,以及父子窗口之间的数据传递。 首先,让我们深入探讨CListCtrl控件。这是一个强大的组件,常用于展示表格或列表形式的数据。在...
总结来说,实现MFC中两个非父子关系的对话框间的通信,主要依赖于自定义消息和共享数据结构。自定义消息能够实现异步或同步的通知,而共享数据则提供了数据交换的途径。在实际开发中,应根据需求选择合适的方法,并...
总结来说,"VC++6.0窗口绑架(强行改变父窗口)"是一个关于Windows编程中改变窗口父子关系的技术,它涉及到跨进程操作和`SetParent`函数的使用,可以在多文档界面或Win32 API中实现。在实际操作时,需要充分了解其潜在...
总的来说,实现"ie+FF通用的父子模态对话框相互传值"涉及到JavaScript的事件处理、跨窗口通信和CSS的模态设计。理解这些知识点并熟练运用,能帮助开发者创建出更好的交互体验。同时,要时刻关注浏览器的兼容性和最佳...
关于父子窗口之间的数据传递: - 父窗口向子窗口(模态或非模态对话框)传递数据,通常在创建对话框对象时作为构造函数参数或者通过成员函数进行设置。 - 子窗口向父窗口传递数据,非模态对话框可以通过成员函数或...
总结,"jquery父子窗口互相获取元素demo"展示了如何在jQuery中实现跨窗口的DOM操作,这在一些特定场景下,如弹窗对话框或者多窗口应用中非常有用。通过正确理解和使用上述技术,开发者可以构建更加复杂且互动性强的...
弹出窗口父子窗口传值主要指的是在Web应用中打开新窗口或弹出对话框时,两个窗口之间数据的交换。在JavaScript中,可以使用window.open()函数创建新窗口,并通过window对象的属性(如opener或parent)来访问父窗口或...
在C#编程中,窗口间的通信是常见的需求,特别是在开发多窗口应用时。"C#实现父子窗体全传值案例"着重展示了如何利用`ShowModalDialog`方法创建模态窗体并传递数据。模态窗体是一种在用户与窗体交互前必须先关闭的...
此外,WPF提供了更高级的数据绑定和MVVM(Model-View-ViewModel)设计模式,可以更优雅地处理父子窗体间的数据交互。例如,父窗体和子窗体可以共享同一个ViewModel,通过ObservableCollection或DependencyProperty...
在Qt设计中,窗口间通信通常是通过信号(Signals)和槽(Slots)机制进行的,这是一种事件驱动的编程模式。 1. **信号和槽的概念** - **信号(Signals)**:当某个事件发生时,Qt对象会发出一个信号。例如,当用户...
首先,我们来看`showModelessDialog`,这是一个在Internet Explorer浏览器中特有的API,用于打开一个无模式对话框。这意味着用户可以在对话框打开的同时与父窗口进行交互。在`showModelessDialog`中,父页面可以传递...
窗口句柄是Windows消息机制的核心部分,程序间通信、事件处理等都离不开它。 窗口标题是用户在界面上看到的窗口顶部的文字,通常用来标识应用程序或者当前窗口的功能。了解窗口标题可以快速识别出窗口的作用,对于...
2. **父子窗口关系**: - 在Qt中,`QMainWindow`通常作为主窗口,而其他如`QWidget`或自定义窗口类可以作为子窗口或对话框。 - 子窗口通常是模态或非模态的,它们可以在主窗口之上弹出,并在完成任务后关闭。 3. ...
在这个场景中,我们通常会使用`window.open()`或`window.showModalDialog()`方法来创建子窗口,并通过特定的API来实现父子窗口之间的通信。在本示例中,我们将探讨如何在不使用iframe框架的情况下,利用JavaScript...