<frameset>框架集中不同<frame>之间的调用【js代码中】

top:永远指分割窗口最高层次的浏览器窗口;parent:包含当前分割窗口的父窗口,本文将围绕js中top、parent、frame进行讲述及他们的应用案例

引用方法top
该变量永远指分割窗口最高层次的浏览器窗口。如果计划从分割窗口的最高层次开始执行命令,就可以用top变量。

parent
该变量指的是包含当前分割窗口的父窗口。如果在一个窗口内有分割窗口,而在其中一个分割窗口中又包含着分割窗口,则第2层的分割窗口可以用parent变量引用包含它的父分割窗口。
附:Window对象、Parent对象、Frame对象、Document对象和Form对象的阶层关系

Windwo对象→Parent对象→Frame对象→Document对象→Form对象,如下:
parent.frame1.document.forms[0].elements[0].value;

JS中:window.location(window.location.href)和
window.top.location(window.top.location.href)是一样的意思
可以通过top来调用任何一个frame,因为top指的是最外层的frameset,可以调用它里面的任何一个子元素frame。
如:top.outterFrame1.location和top.innerFrame2.location等。

parent指的是当前窗口(frame)的父窗口(frameset)可以调用它里面的任何一个子元素frame。如:parent.innerFrame1.location和parent.innerFrame2.location等。

<html>
<head>
<title>top frame parent示例</title>
<script language="javaScript" type="text/javaScript">
window.location.href="http://www.baidu.com/";
</script>
</head>
<frameset id="outFrameset" rows="150,*,150" cols="*" border="5">
<frame name="frameName1" id="frameId1" src="a.html">
<frameset id="inFrameset" cols="150,*" rows="*">
<frame name="innerFrameName1" id="innerFrameId1" src="a.html">
<frame name="innerFrameName2" id="innerFrameId2" src="a.html">
</frameset>
<frame name="frameName2" id="frameId2" src="a.html">
</frameset>
</html>

View Code

自己的一个示例代码(权限top,left,right页面,在top窗口的页面中获取一个连接地址,让left窗口去请求这个地址,并将响应回来的页面,显示在left窗口中)的一个jsp代码

 

 1 //当top页面加载完后,left页面自动显示top第一个一级菜单下的拥有的二级菜单
 2         $(document).ready(function(){
 3             //获取遍历出来的第一个超链接的对象
 4             var firstA=$("#turnto1");
 5             var ahref=firstA.attr("href");
 6             //当top页面加载完毕后,left页面自动发送第一个遍历出来的一级菜单的连接地址。
 7             parent.leftFrame.location.href=ahref;
 8
 9         });
10         </script>
11 </head>
12
13 <body style="background:url(<%=request.getContextPath() %>/master/images/topbg.gif) repeat-x;">
14
15     <div class="topleft">
16     <a href="<%=request.getContextPath() %>/master/main.jsp" target="_parent"><img src="<%=request.getContextPath() %>/master/images/logo.png" title="系统首页" /></a>
17     </div>
18
19     <ul class="nav">
20
21
22
23     <c:forEach items="${list }" var="powers" varStatus="vars">
24
25         <li><a  href='<%=request.getContextPath() %>${powers.sysPowerUrl }=${powers.sysPowerId}' id="turnto${vars.count }" target="leftFrame" class="selected"><img src="<%=request.getContextPath() %>/master/images/icon01.png" title="${powers.sysPowerName }" /><h2>${powers.sysPowerName }</h2></a></li>
26
27     </c:forEach>
28
29
30     </ul>

View Code

 上面示例的页面框架

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 3 <html>
 4   <head>
 5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6             <title>信息管理系统界面</title>
 7 <jsp:include page="/master/public/head.jsp"></jsp:include>
 8 </head>
 9 <frameset rows="88,*" cols="*" frameborder="no" border="0" framespacing="0">
10   <frame src="<%=request.getContextPath() %>/master/sysUser_queryModule.action?powerParentId=0" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
11   <frameset cols="187,*" frameborder="no" border="0" framespacing="0">
12     <frame src="<%=request.getContextPath() %>/master/left.jsp" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
13     <frame src="<%=request.getContextPath() %>/master/user/index.jsp" name="rightFrame" id="rightFrame" title="rightFrame" />
14   </frameset>
15 </frameset>
16 <body>
17 </body>
18 </html>

View Code

 

 

 

 

时间: 2024-09-17 14:46:21

<frameset>框架集中不同<frame>之间的调用【js代码中】的相关文章

C++中调用JS代码的问题

前段时间开发了一个COM组件配合web前端使用,遇到了C++中调用JS代码的问题,在网上查了很多资料,现 总结一下,留作以后察看. C++中调用JS代码主要有两种情况:1. IE线程中调用:2. 其他线程调用 1. IE线程中调用:这种情况网上已经有很多资料,下面列出示列代码: C++代码 STDMETHODIMP CJsInvoker::InvokeJsFunc(LONG para1, LONG para2, VARIANT jsFunction, LONG* retValue) { CCom

htm调用JS代码_基础知识

1.用JS调用Htm,主页面怎么写? 在<body>与</body>之间合适位置写下这个代码: <script language="JavaScript" src="head.js"  type="text/JavaScript"></script> src="js文件名称和路径" 2.js文件怎么写? 比如:head.js内容这样写,把主页面里的htm需要转换成JS的代码,用J

php php调用js js-PHP中如何调用JS自定义函数

问题描述 PHP中如何调用JS自定义函数 大家好,小弟最近在做一个PHP页面,页面中有一个下拉列表的onchange事件需要调用一个JS文件中得方法,我试了很多次依然不能成功,请各位大神帮忙出出主意吧~!跪谢~~! 解决方案 PHP是无法直接调用JS函数的,因为不是一个层面的东西,如果你想问的是PHP与JS通信,可把数据互通 参考:PHP与Javascript通信流程深入解析 解决方案二: 这个问题啊,怎么说呢,首先得明白html和js的关系,其实js是脚本,php也是脚本,当时设计出来的初衷都

父窗口与子窗口相互调用js代码(1/3)

父页面调用子页面中的js 我们先创建一个子窗体 复制代码 代码如下: var win $(function () { root = $('#root').val();//设置根目录 }); function openplayer(id, type, add) { //这里是用来限制同一个窗口只能弹出一次的 //其实就算不做限制,只要window.open参数中的name相同,就不会重复打开 //window.open中的参数可以参考别的文章,有很多 if (win == null || win.

框架页面尽可以这么用(后置代码中控制框架)

下面是框架页: <%@ Page CodeBehind="Frameset.aspx.cs" Language="c#" AutoEventWireup="false" Inherits="IbatisTest.Web.Frameset" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <HTML&g

iframe父子页面相互调用js代码

当父页面和子页面都属于同一个域下,那么它们之间的js方法是可以相互调用的.在调用方法前指定function所属对象即可,父页面获取iframe所属对象方法为:iframe的name.window.方法名(),iframe页面获取父页面所属对象方法为:parent.方法名(). 但是这里有一个非常重要的限制,由于浏览器基于安全考虑,是不允许js在不同域名间进行通信,所以父子页面必须属于同一个域,即使是相同主域下的不同二级域也是不行的. 对于父子页面完全属于两个不同的域名,那么它们之间永远无法直接进

javascript 调用js:javascript中iframe里面的页面调用父窗口js函数的方法

实现iframe内部页面直接调用该iframe所属父窗口自定义函数的方法.比如有A窗口,A内有个IFRAME. B,B里面的装载的是C页面,这时C要直接调用A里面的一个自定义函数ExpandPage();那么只要在C页面中写如下JS函数就可以了:window.parent.ExpandPage();如果ExpandPage()有参数也可以直接传递合适的参数进去. 本文链接http://www.cxybl.com/html/wyzz/JavaScript_Ajax/20130131/36765.h

使用struts进行页面跳转 jsp中含有frameset框架,报404错误

问题描述 使用struts进行页面跳转 jsp中含有frameset框架,报404错误 使用struts进行页面跳转 jsp中含有frameset框架,报404错误 这是jsp代码 <%@ page contentType=""text/html; charset=UTF-8"" language=""java"" %><!DOCTYPE html PUBLIC ""-//W3C//DTD

如何利用Flex调用JavaScript代码

  Flex调用JavaScript代码 在Flex开发中有时候需要调用JS代码,例如关闭浏览器,或者是在某种情况下打开浏览器提示框等等.一般情况下Flex用ExternalInterface类的call()函数来调用JS代码,其中call()函数的参数就是String类型的JS代码段. 你可以调用Html页面中的JavaScript,通过与JavaScript的交互,可以改变Style,调用远程方法.还可以将数据传递给Html页面,处理后再返回给Flex,完成这样的功能主要有两种方法:Exte