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

frame之间相互控制及传值

阅读更多
我们使用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 ='新的链接'





0
0
分享到:
评论

相关推荐

    frame与frame之间如何用JavaScript传值

    本文将详细讲解如何使用JavaScript在frame与frame之间进行值的传递。 首先,了解基本概念。`window`对象是浏览器的全局对象,它提供了对浏览器窗口的各种控制,包括访问框架。`frames`属性是`window`对象的一个成员...

    frame之间进行参数传递例子

    本篇将详细探讨如何在“frame”之间进行参数传递,以及相关的源码分析和技术工具的应用。 标题中的“frame”通常指的是程序中的帧或者视图,尤其在Web开发中,它可能指的是HTML框架或JavaScript中的帧对象。在多层...

    xr-frame案例实现兄弟组件传值通信

    在“xr-frame”案例中,我们可以使用以下方法实现兄弟组件的通信: 1. **事件总线(Event Bus)**:创建一个全局的事件监听器,允许组件之间通过发布和订阅事件来传递信息。例如,在Vue中,可以创建一个Vue实例作为...

    二个iframe之间传值 的小例子

    在网页开发中,`iframe`(Inline Frame)是一种嵌入式框架,用于在单个HTML文档中嵌入另一个HTML文档。`iframe`常用于实现页面的分层展示、加载外部内容或者实现局部刷新等效果。当在一个页面内存在多个`iframe`时,...

    在iframe、frame之间,js的相互访问、修改

    当我们谈论在`iframe`、`frame`之间通过JavaScript进行相互访问和修改时,涉及到的知识点主要包括DOM操作、跨域安全、同源策略以及一些特殊的技术和技巧。 1. 同源策略:同源策略是浏览器为了保障用户信息安全而...

    frame之间以及子页面和父页面间参数传递

    ### Frame之间及子页面与父页面间的参数传递 在Web开发中,特别是在使用JSP(Java Server Pages)技术时,经常需要实现不同`frame`之间的数据交互或子页面与父页面之间的参数传递。这种功能在实际应用中非常常见,...

    C语言头文件 FRAME

    C语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 FRAMEC语言头文件 ...

    iframe父子传值

    同源策略规定,只有相同协议、域名和端口的两个页面才能相互访问彼此的DOM元素和JavaScript变量。因此,如果`iframe`的源URL与包含它的页面不同源,那么它们之间的通信就会受到限制。 ### 2. 父向子传值 #### 2.1 ...

    frame与contentwindow对象

    ContentWindow 对象可以用于获取 Frame 对象的 Window 对象,从而实现对 Frame 对象的操作和控制。 Frame 对象和 ContentWindow 对象的区别 Frame 对象和 ContentWindow 对象都是 HTML 文档中的窗口对象,但它们...

    frame,iframe,中的js的相互访问示例

    本文将深入探讨如何在`frame`和`iframe`之间进行JavaScript(JS)的相互访问,以及相关的知识点。 1. **frame与iframe的区别** - `frame`是HTML4中的元素,它被用作`frameset`的一部分,用来分割窗口或框架。而`...

    Delphi中frame的使用

    "Delphi 中 Frame 的使用" Delphi 中 Frame 的使用是 Delphi 编程语言中的一种重要组件,它可以将多个控件组合成一个单一的控件,以便于在窗体中进行布局和管理。在 Delphi 中,Frame 是一个特殊的控件,它可以容纳...

    iOS KVO 监听frame

    - 在视图控制器或自定义视图中,你可以为UI控件(如UILabel、UIButton或自定义视图)的`frame`属性添加观察者。 - `frame`属性包括了view的位置(origin)和大小(size),所以当你监听`frame`时,任何位置或尺寸...

    跨frame操作dom元素

    本文将深入探讨这个主题,并结合标签“源码”和“工具”,为你揭示如何在不同frame之间交互和操作DOM。 首先,理解frame的概念至关重要。在HTML中,frame是用来将一个网页划分为多个独立浏览区域的元素,每个区域...

    js 实现iframe 之间传值

    在网页开发中,`iframe`(Inline Frame)是一种嵌入式框架,用于在单个HTML文档中嵌入另一个HTML文档。这种技术常用于加载外部页面、实现页面分块或者在不刷新整个页面的情况下更新部分内容。然而,由于`iframe`本质...

    dom网页frame枚举

    总的来说,通过DOM枚举frame,我们可以有效地管理和控制网页中的多窗口结构,实现各种动态效果和交互功能。这在处理复杂布局、页面组件的动态加载、以及跨域通信等场景下显得尤为重要。在实际项目中,了解并熟练掌握...

    frameSet应用 子父窗口传值

    `iframe`有更好的灵活性和控制性,而且避免了`frameSet`的一些问题,如滚动条同步、URL不正确反映页面状态等。因此,尽管了解`frameSet`的用法是必要的,但在新项目中应考虑使用`iframe`或其他现代技术。 总结,`...

    wxPyFrame 实现Frame之间的跳转更新

    wxPython的应用入口是在wx.App()实现的,在OnInit()函数中创建要显示的Frame对象,在wx.App子类中实现界面刷新的函数update(),并将其传递给新创建的Frame对象,在Frame需要触发Frame更新的时候,通过这个回调函数...

    MFC源代码 FRAME2.03

    MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 FRAME2.03MFC源代码 ...

    iframe子向父传值实例.rar

    在网页开发中,有时我们需要在不同的页面或者框架之间进行数据交互,这时`iframe`子向父页面传递值就显得尤为重要。本示例“iframe子向父传值实例”旨在提供一个解决方案,帮助开发者应对跨域问题,从而实现iframe...

    X-Frame-Options相关文件

    X-Frame-Options HTTP响应头就是为了解决这个问题而引入的,它允许网站管理员控制他们的页面是否可以在其他站点的框架(frame或iframe)中显示。 描述中提到的"X-Frame-Options头缺失 in a frame because it set 'X...

Global site tag (gtag.js) - Google Analytics