我们使用Frame可以在浏览器窗口同时显示多个网页。每个Frame里设定一个网页,每个Frame里的网页相互独立。但是frame之间如何相互控制,我这里做了小列子来说明他们的关系。大致有两种情况,第一种是frameset 中嵌套frame,第二种是html(或jsp等)中嵌套iframe。两种情况基本类似,下面举例说明第二种情况:
请看代码清单:
frame.jsp
<%@ page language="java" pageEncoding="utf-8"%>
<script type="text/javascript">
function controlChildren(){
var childWindow1 = document.frames['frame1']; //获得第一个窗口对象
var childWindow2 = document.frames['frame2']; //获得第二个窗口对象
alert("I can control my child");
childWindow1.document.all["text1"].value="parent set my value=text1";
childWindow2.document.all["text2"].value="parent set my value=text2";
}
</script>
<frameset>
<frame src="test.jsp" name="frame1" >
<frame src="index.jsp" name="frame1" >
</frameset>
<BODY>
<div>parent frame</div>
<div>
<input type="text" id="text" value="" size="25">
<input type="button" name="button" id="button" value="controlChild1Frame" onClick="controlChildren();">
<iframe id="frame1" name="frame1" src="frame1.jsp"></iframe>
<iframe id="frame2" name="frame2" src="frame2.jsp"></iframe>
</div>
</BODY>
frame1.jsp(代码)
<BODY>
<div>child1 frame</div>
<input name="text1" id="text1" type="text" value="" size="25">
</BODY>
frame2.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<script type="text/javascript">
function controlParent(){
alert("I can control my parent");
parent.document.all["text"].value="my child set my value=text";
}
function controlOtherFrame(){
alert("I can control my brother");
var brotherWindow = parent.frames['frame1'];
brotherWindow.document.all["text1"].value="my brother set my value=text1";
}
</script>
<BODY>
<div>child2 frame</div>
<input name="text2" id="text2" type="text" value="" size="25">
<input name="button1" id="button1" type="button" value="controlParentFrame" onClick=" controlParent();">
<input name="button2" id="button2" type="button" value="controlChild1Frame" onClick=" controlOtherFrame();">
</BODY>
运行一下,能看到结果,一目了然.其实每个窗体的document对象都有一个数组的属性,即frames,通过该数组可以很容易的访问到其儿子窗体,当然儿子窗体也可以通过parent来访问其父窗体。
第一种情况补充:
取得上层frame: window.parent
取得上上层frame: window.parent.parent
取得和自己frame同级别的frame: window.parent.frames[被操作的frame的name]
改变和自己frame同级别frame的链接: window.parent.frames[被操作的framename].location.href ='新的链接'
分享到:
相关推荐
本文将详细讲解如何使用JavaScript在frame与frame之间进行值的传递。 首先,了解基本概念。`window`对象是浏览器的全局对象,它提供了对浏览器窗口的各种控制,包括访问框架。`frames`属性是`window`对象的一个成员...
本篇将详细探讨如何在“frame”之间进行参数传递,以及相关的源码分析和技术工具的应用。 标题中的“frame”通常指的是程序中的帧或者视图,尤其在Web开发中,它可能指的是HTML框架或JavaScript中的帧对象。在多层...
在“xr-frame”案例中,我们可以使用以下方法实现兄弟组件的通信: 1. **事件总线(Event Bus)**:创建一个全局的事件监听器,允许组件之间通过发布和订阅事件来传递信息。例如,在Vue中,可以创建一个Vue实例作为...
在网页开发中,`iframe`(Inline Frame)是一种嵌入式框架,用于在单个HTML文档中嵌入另一个HTML文档。`iframe`常用于实现页面的分层展示、加载外部内容或者实现局部刷新等效果。当在一个页面内存在多个`iframe`时,...
当我们谈论在`iframe`、`frame`之间通过JavaScript进行相互访问和修改时,涉及到的知识点主要包括DOM操作、跨域安全、同源策略以及一些特殊的技术和技巧。 1. 同源策略:同源策略是浏览器为了保障用户信息安全而...
### Frame之间及子页面与父页面间的参数传递 在Web开发中,特别是在使用JSP(Java Server Pages)技术时,经常需要实现不同`frame`之间的数据交互或子页面与父页面之间的参数传递。这种功能在实际应用中非常常见,...
C语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 ...
同源策略规定,只有相同协议、域名和端口的两个页面才能相互访问彼此的DOM元素和JavaScript变量。因此,如果`iframe`的源URL与包含它的页面不同源,那么它们之间的通信就会受到限制。 ### 2. 父向子传值 #### 2.1 ...
ContentWindow 对象可以用于获取 Frame 对象的 Window 对象,从而实现对 Frame 对象的操作和控制。 Frame 对象和 ContentWindow 对象的区别 Frame 对象和 ContentWindow 对象都是 HTML 文档中的窗口对象,但它们...
本文将深入探讨如何在`frame`和`iframe`之间进行JavaScript(JS)的相互访问,以及相关的知识点。 1. **frame与iframe的区别** - `frame`是HTML4中的元素,它被用作`frameset`的一部分,用来分割窗口或框架。而`...
"Delphi 中 Frame 的使用" Delphi 中 Frame 的使用是 Delphi 编程语言中的一种重要组件,它可以将多个控件组合成一个单一的控件,以便于在窗体中进行布局和管理。在 Delphi 中,Frame 是一个特殊的控件,它可以容纳...
- 在视图控制器或自定义视图中,你可以为UI控件(如UILabel、UIButton或自定义视图)的`frame`属性添加观察者。 - `frame`属性包括了view的位置(origin)和大小(size),所以当你监听`frame`时,任何位置或尺寸...
本文将深入探讨这个主题,并结合标签“源码”和“工具”,为你揭示如何在不同frame之间交互和操作DOM。 首先,理解frame的概念至关重要。在HTML中,frame是用来将一个网页划分为多个独立浏览区域的元素,每个区域...
在网页开发中,`iframe`(Inline Frame)是一种嵌入式框架,用于在单个HTML文档中嵌入另一个HTML文档。这种技术常用于加载外部页面、实现页面分块或者在不刷新整个页面的情况下更新部分内容。然而,由于`iframe`本质...
总的来说,通过DOM枚举frame,我们可以有效地管理和控制网页中的多窗口结构,实现各种动态效果和交互功能。这在处理复杂布局、页面组件的动态加载、以及跨域通信等场景下显得尤为重要。在实际项目中,了解并熟练掌握...
`iframe`有更好的灵活性和控制性,而且避免了`frameSet`的一些问题,如滚动条同步、URL不正确反映页面状态等。因此,尽管了解`frameSet`的用法是必要的,但在新项目中应考虑使用`iframe`或其他现代技术。 总结,`...
wxPython的应用入口是在wx.App()实现的,在OnInit()函数中创建要显示的Frame对象,在wx.App子类中实现界面刷新的函数update(),并将其传递给新创建的Frame对象,在Frame需要触发Frame更新的时候,通过这个回调函数...
MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 ...
在网页开发中,有时我们需要在不同的页面或者框架之间进行数据交互,这时`iframe`子向父页面传递值就显得尤为重要。本示例“iframe子向父传值实例”旨在提供一个解决方案,帮助开发者应对跨域问题,从而实现iframe...
X-Frame-Options HTTP响应头就是为了解决这个问题而引入的,它允许网站管理员控制他们的页面是否可以在其他站点的框架(frame或iframe)中显示。 描述中提到的"X-Frame-Options头缺失 in a frame because it set 'X...