JS--JavaScript使用window对象操作框架集frameset中的各窗口(frames[])

JavaScript对frameset的操作总结 1 框架编程概述 一个Html 页面可以有一个或多个子框架,这些子框架以来标记,用来显示一个独立的Html 页面。这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问,例如从一个框架中引用另一个框架中的JavaScript变量、调用其他框架内的函数、控制另一个框架中表单的行为等。2 框架间的互相引用 一个页面中的所有框架以集合的形式作为window 对 阅读详情
框架集中的window对象

在HTML文档中,如果页面包含框架,则每个框架都拥有自己的window对象,并且保存在frames集合中。在frames集合中,可以通过数值索引(从0开始)从左至右、从上至下访问每个window对象,或者使用使用框架集名称访问每个window对象。每个window对象都有一个name属性,其中包含框架的名称。

在每一个框架中,window对象始终指向的都是那个框架实例,而非最高层的框架:top对象始终指向最高层的框架,也就是浏览器窗口:parent对象始终指向当前框架的上层框架。

在某些情况下:parent可能等于top。例如,在没有框架的情况下,parent等于top。
使用top或parent可以在一个框架中正确访问另一个框架。例如,可以通过top.window.frames[0]引用第一个框架。

框架之间可以通过window相关属性进行引用,如下表:

属性说明
top如果当前窗口是框架,它就是对包含这个框架的顶级窗口的window对象的引用。注意,对于嵌套在其他框架中的框架,top未必等于parent
parent如果当前的窗口是框架,它就是对窗口中包含这个框架的父级框架引用
window自引用,是对当前window对象的引用,与self属性同义
self自引用,是对当前window对象的引用,与window属性同义
frames[]window对象集合,代表窗口中的各个框架(如果存在)
name窗口的名称。可被HTML标签< a > 的target属性引用
opener对打开当前窗口的window对象的引用

示例:下面是一个框架集文档,共包含了4个框架,设置第一个框架装载文档名为left.html,第二个框架装载文档名为middle.html,第三个框架装载文档名为right.html,第四个框架装载文档名为bottom.html。

left.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			window.onload = function(){
				document.body.onclick = f;
			}
			var f = function(){
				parent.frames[2].document.body.style.backgroundColor = "red";
			}
			function left(){
				alert("left");
			}
		</script>
	</head>
	<body>
		<h1>left.html</h1>
		在最高层窗口中访问本框架的方式:
		<li>window.frames[0]</li>
		<li>window.frames["left"]</li>
		<li>top.frames[0]</li>
		<li>top.frames["left"]</li>
		<li>frames[0]</li>
		<li>frames["left"]</li>
		单击本页面,让第3个框架窗口(right.html)背景变为红色
	</body>
</html>

middle.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			window.onload = function(){
				document.body.onclick = f;
			}
			var f = function(){
				parent.frames["left"].left();
			}
		</script>
	</head>
	<body>
		<h1>middle.html</h1>
		在最高层窗口中访问本框架的方式:
		<li>window.frames[1]</li>
		<li>window.frames["middle"]</li>
		<li>top.frames[1]</li>
		<li>top.frames["middle"]</li>
		<li>frames[1]</li>
		<li>frames["middle"]</li>
		单击本页面,调用第1个框架窗口(left.html)的函数left()
	</body>
</html>

right.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			window.onload = function(){
				document.body.onclick = f;
			}
			var f = function(){
				parent.frames[3].document.body.style.backgroundColor = "yellow";
			}
		</script>
	</head>
	<body>
		<h1>right.html</h1>
		在最高层窗口中访问本框架的方式:
		<li>window.frames[2]</li>
		<li>window.frames["right"]</li>
		<li>top.frames[2]</li>
		<li>top.frames["right"]</li>
		<li>frames[2]</li>
		<li>frames["rihgt"]</li>
		单击本页面,让第4个框架窗口(bottom.html)背景色为黄色
	</body>
</html>

bottom.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			window.onload = function(){
				document.body.onclick = f;
			}
			var f = function(){
				parent.frames["middle"].document.body.style.backgroundColor = "blue";
			}
		</script>
	</head>
	<body style="text-align: center;">
		<h1>bottom.html</h1>
		在最高层窗口中访问本框架的方式:
		<div>
		<li>window.frames[3]</li>
		<li>window.frames["bottom"]</li>
		<li>top.frames[3]</li>
		<li>top.frames["bottom"]</li>
		<li>frames[3]</li>
		<li>frames["bottom"]</li>
		</div>
		单击本页面,让第2个框架窗口(middle.html)背景为蓝色
	</body>
</html>

主页面index.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>框架集</title>
		
	</head>
	<frameset rows="50%,50%" cols="*" frameborder="yes" border="1" framespacing="0">
		<frameset rows="*" cols="33%,*,33%" frameborder="yes" border="1" framespacing="0">
			<frame src="left.html" name="left" id="left" />
			<frame src="middle.html" name="middle" id="middle" />
			<frame src="right.html" name="right" id="right" />
		</frameset>
		<frame src="bottom.html" name="bottom" id="bottom" />
	</frameset>
	
	<noframes><body></body></noframes>
</html>

显示效果:
在这里插入图片描述

测试:
在这里插入图片描述

JavaScript中的iframe基本用法 在上面的代码中,我们首先通过document.getElementById获取了具有ID为"my-iframe"的iframe元素,并使用iframe.contentWindow属性获取了嵌入文档的window对象。通过使用iframe,我们可以在一个页面中显示其他页面的内容,这为我们提供了一种在网页中集成外部内容的方式。本文介绍了JavaScript中iframe的基本用法,包括创建iframe元素、操作嵌入文档的内容以及在父文档和嵌入文档之间进行通信。希望本文对您理解和使用iframe有所帮助! 阅读详情

相关推荐

EGO_Plannerv2代码学习(一):栅格建图之V1 V2的区别

最近在尝试将高飞老师的集群规划器部署到真实无人机上跑一下,开这个新帖记录下学习过程中的问题和想法。

qq_41069236的博客 5753

javascript宿主对象之window.frames

window.frames属性是当前页面所有框架的集合。要注意的事,这里并没有frame和iframe做出区分。而且,无论页面存不存在框架,window.frames属性总是存在的,并总是指向window对象本身。 window.frames === window; // true; 假设我们页面中有一个iframe元素: <iframe name="myframe" sr...

weixin_30588729的博客 604

威联通改装飞牛fnOS全攻略:从刷机到Docker影视部署

NAS系统是家庭数字存储的核心,x86架构的威联通设备凭借通用引导和驱动支持,成为改装替代系统的理想平台。飞牛fnOS作为基于Debian的国产NAS系统,以简洁UI、内置Docker和影视墙以及硬件转码能力,吸引了大量玩家。通过U盘引导安装、BIOS调整、系统盘SSD部署,可实现系统切换;原机械硬盘可挂载为存储池,配合Docker部署下载、远程访问等容器,影视中心自动削刮海报墙,硬件转码保障4K播放。改装过程需注意引导失败、硬盘识别、核显驱动等问题。这套方案能让老旧威联通焕发新生,兼顾易用性与扩展性。本文

weixin_33585822的博客 771

JavaScript Frames对象

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34087307的博客 452

cmu15445(2024fall) project 2

project 2比p1难度要更大,代码量更大且涉及的知识更多,实现中出现的bug更多,好在是最后全部解决了。我最大的收获在于对于多线程编程的理解更深入了,实际发现解决了多个多线程相关的bug,学会了更多多线程下debug的技巧方法,也见识了更多多线程的bug情况。在之后可以更系统的学习一下多线程编程。同时学会实现B+树也是需要掌握的基础。

Jerome_Yi的博客 1561

SAP-ABAP:SAP MM采购订单增强核心BAdI:IF_EX_ME_PROCESS_PO_CUST 深度解析与最佳实践指南

SAP MM采购订单增强核心BAdI:IF_EX_ME_PROCESS_PO_CUST 关键摘要 核心要点 技术定位:SAP MM模块采购订单处理的核心增强框架,属于第二代BAdI技术,支持多实例并行实现 架构特点: 覆盖采购订单全生命周期(创建/修改/显示) 嵌入ME21N/ME22N/ME23N的标准处理流程 提供字段级、抬头、行项目、账户分配等多层次增强点 关键方法: INITIALIZE:事务初始化时预加载数据 PROCESS_HEADER:处理抬头数据变更 PROCESS_ITEM:处理行项目字段

baidu_35680696的博客 812

框架集frames笔记

用法1: 使用框架集frameset时页面不显示,原因是html文件中只能同时包含bo1dy标签或者frameset标签其中之一,去掉frame外面的bo1dy即可 1.jsp是个框架集构成的页面,index2.jsp是1.jsp的各个框架页面的src。 获取框架页面: top.frames[0]或者top.frames['aa']可以获得第一个框架,[]里是框架的name或者序号。 top是wi...

weixin_43292547的博客 925

基于深度学习的柑橘病害检测系统——YOLOv8 + UI界面 + 数据集

深度学习是机器学习的一种重要分支,它通过构建多层的神经网络(尤其是卷积神经网络CNN)来从大规模的数据中学习特征。近年来,深度学习特别是在计算机视觉领域取得了显著的进展,成为图像分类、目标检测、图像分割等任务的主要技术。对于农业病害检测问题,深度学习通过对大量带标签的病害图像进行训练,能够自动识别不同类型的病害,并判断病害的程度。通过图像中目标(病害区域)的边界框,可以快速定位病害区域,进一步分析其影响范围。

YOLO 1044

js frame 框架编程与frameElement

1 框架编程概述 一个Html 页面可以有一个或多个子框架,这些子框架以来标记,用来显示一 个独立的Html 页面。这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问, 例如从一个框架中引用另一个框架中的JavaScript变量、调用其他框架内的函数、控制另一 个框架中表

刘道平的专栏 1340

AUTOSAR 导入DBC ISOLAR工程配置

ISOLAR工程配置-dbc导入

汽车电子电气 2408

Google Earth Engine:LandTrendr (Landsat Collection 2)全更新使用(代码调用+UI交互)

本文介绍了使用Landsat Collection 2进行连续变化监测的分析方法,包含代码实现和可视化界面两部分。代码部分通过Google Earth Engine平台运行LandTrendr算法,设置参数包括时间范围、光谱指数、变化检测阈值等,最终生成变化幅度和检测年份的可视化图层,并将结果导出至Google Drive。可视化界面部分展示了基于LandTrendr的土地覆盖变化结果,结合Landsat影像进行分析。整个方法实现了从数据处理到结果展示的完整流程,适用于森林覆盖等环境变化监测。

此星光明博客 211

JavaScript : WINDOW FOR JAVASCRIPT 窗口对象

JavaScript : WINDOW FOR JAVASCRIPTdocument.title="JavaScript : WINDOW FOR JAVASCRIPT - "+document.title 熟练window对象的open、close、alert、confirm、prompt、setTimeout、clearTimeout、setInterval、clearInterval

秤砣的专栏 2741

【异常】Claude Code 在 Windows CMD 中出现重影现象的排查与解决

Windows CMD运行Claude Code时出现文字重影、乱码等问题,原因是传统CMD对现代ANSI终端控制序列支持不足。解决方案包括:1)推荐安装Windows Terminal(完全支持ANSI标准);2)使用PowerShell 7;3)优化CMD设置(启用虚拟终端、UTF-8编码);4)关闭Claude Code视觉特效。建议优先使用Windows Terminal以获得最佳体验,这是最彻底的解决方案。其他方案仅能部分改善或缓解问题。

奶爸的编程之路,也就一周冷个三天 1963

javascript 操作frameset frame 对象

框架编程概述 一个HTML页面可以有一个或多个子框架,这些子框架以来标记,用来显示一个独立的HTML页面。这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问,例如从一个框架中引用另一个框架中的JavaScript变量、调用其他框架内的函数、控制另一个框架中表单的行为等。  框架间的互相引用 一个页面中的所有框架以集合的形式作为window对象的属性提供,例如:window.frame

448

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

javascript当中frame和frameset的用法

1.frame和frameset(企业用的少了,所以视频略过,见后面iframe部分) 例 2.1.1(index.html) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> <html xmlns="...

qq_43650923的博客 307

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JS-Window对象

js-window对象的方法和属性资料   Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否有打开的网页,当遇到BODY、FRAMESET或FRAME元素时,都会自动建立window对象的实例。另外,该对象的实例也可由window.open()方法创建。由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性

Little Thunder 1929

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

window操作frames框架数组

index主页面:frameset框架不能和body在一起使用html> lang="en"> charset="UTF-8"> 索引 rel="icon" href="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1516353689965&di=8dfc47790a10cc35e

Byte_Dance的博客 3772

js操作frameset frame 对象

框架编程概述 一个HTML页面可以有一个或多个子框架,这些子框架以来标记,用来显示一个独立的HTML页面。这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问,例如从一个框架中引用另一个框架中的JavaScript变量、调用其他框架内的函数、控制另一个框架中表单的行为等。 框架间的互相引用 一个页面中的所有框架以集合的形式作为window对象的属性提供,例如:window.fram...

lillian1205的专栏 148

javascript window对象属性和方法介绍

转载自:http://www.cnblogs.com/Athrun/archive/2008/04/16/1156291.html

每天都记录一点点! 1200

javascript window对象的status、location、name、self、opener属性的使用

window对象的status、location、name、self、opener属性的使用 window对象的status、location、name、self、opener属性的使用 window对象的status、location、name、self、opener属性的使用   Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否

ghxmyway的专栏 1264

frameset、frame、iframe的js操作

框架编程概述一个HTML页面可以有一个或多个子框架,这些子框架以来标记,用来显示一个独立的HTML页面。这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问,例如从一个框架中引用另一个框架中的变量、调用其他框架内的函数、控制另一个框架中表单的行为等。框架间的互相引用一个页面中的所有框架以集合的形式作为window对象的属性提供,例如:window.frames就表示该页面内所有框架的集合

wmgzx的专栏 554

对frameset、frame、iframe的js操作

(转)对frameset、frame、iframe的js操作框架编程概述一个HTML页面可以有一个或多个子框架,这些子框架以来标记,用来显示一个独立的HTML页面。这里所讲的框架编程包括框 架的自我控制以及框架之间的互相访问,例如从一个框架中引用另一个框架中的JavaScript变量、调用其他框架内的函数、控制另一个框架中表单的行为 等。框架间的互相引用一个页面中的所有框架以集合的

_学习笔记 434

javascript window 对象的方法和属性资料

Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否有打开的网页,当遇到BODY、FRAMESET或FRAME元素时,都会自动建立window对象的实例。另外,该对象的实例也可由window.open()方法创建。由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:window.do

455

js操作frame详细解说,window.opener和window.parent的区别

js操作frame详细解说,window.opener和window.parent的区别 frame框架里的页面要改其他同框架下的页面或父框架的页面就用parent window.opener引用的是window.open打开的页面的父页面。 window.frames对象可以引用iframe里的页面,也可以引用frameset里的页面. 可以这样 window.frames[0]...

weixin_30500289的博客 96
上一篇: JS--JavaScript操作BOM(浏览器对象模型、window对象概述、window.open()方法打开窗口)
下一篇: JS--JavaScript使用window对象控制窗口大小(innerWidth、innerHeight)和位置(moveTo()、moveBy())、设置随机移动弹窗(小网站专用...)
吴声子夜歌
博客等级 码龄9年 2688粉丝 2269原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值