- 浏览: 807325 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (981)
- javascript (102)
- java (212)
- JQuery (81)
- 幽默笑话 (2)
- 只言片语 (6)
- 开发小记 (283)
- Hibernate (17)
- DWR (4)
- SQL (10)
- spring-ibatis (8)
- linux (24)
- Struts1 (8)
- Struts2 (16)
- spring (42)
- Mybatis (16)
- css (18)
- servlet (8)
- jdbc (4)
- jsp (1)
- spring-jdbc (2)
- FreeMarker (2)
- MySQL (24)
- JQuery-Grid (7)
- jstl (5)
- 正则表达式 (1)
- 面试集锦 (86)
- unix (18)
- 开发工具 (23)
- ajax (5)
- webservice (4)
- log4j (3)
- oracle (15)
- extjs (14)
- 其他 (9)
- 优秀技术参考地址 (1)
- 性能 (3)
- 数据库 (25)
- 算法 (15)
- 设计模式 (10)
- Python (3)
- AIX (5)
- weblogic (1)
- shell (14)
- quartz (5)
- 图形文件FusionCharts (1)
- Websphere (4)
- 转载 (5)
- hadoop (1)
- highchart (24)
- perl (22)
- DB2 (7)
- JBoss (1)
- JQuery Easy UI (9)
- SpringMVC (5)
- ant (5)
- echart (9)
- log4J配置 (3)
- 多线程 (10)
- 系统架构 (7)
- nginx (3)
- loadrunner1 (1)
- 分布式 (1)
- Dubbo (1)
- Redis (2)
- JMS (4)
- 自动化测试 (3)
- Spring循环依赖的三种方式 (1)
- spring-boot (2)
- 高级测试 (9)
- github (2)
- sonar (1)
- docker (6)
- web前端性能优化 (1)
- spring-aop (6)
- rabbit (1)
- ELK (1)
- maven (1)
- minio (1)
最新评论
-
zengshaotao:
jstl1point0 写道很好啊,如果有带Session会话 ...
Nginx+Tomcat搭建高性能负载均衡集群 -
jstl1point0:
很好啊,如果有带Session会话的怎么搞呢
Nginx+Tomcat搭建高性能负载均衡集群
框架编程概述
一个HTML页面可以有一个或多个子框架,这些子框架以<iframe>来标记,用来显示一个独立的HTML页面。这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问,例如从一个框架中引用另一个框架中的JavaScript变量、调用其他框架内的函数、控制另一个框架中表单的行为等。
框架间的互相引用
一个页面中的所有框架以集合的形式作为window对象的属性提供,例如:window.frames就表示该页面内所有框架的集合,这和表单对象、链接对象、图片对象等是类似的,不同的是,这些集合是document的属性。因此,要引用一个子框架,可以使用如下语法: window.frames["frameName"]; window.frames.frameName window.frames[index] 其中,window字样也可以用self代替或省略,假设frameName为页面中第一个框架,则以下的写法是等价的: self.frames["frameName"] self.frames[0] frames[0] frameName 每个框架都对应一个HTML页面,所以这个框架也是一个独立的浏览器窗口,它具有窗口的所有性质,所谓对框架的引用也就是对window对象的引用。有了这个window对象,就可以很方便地对其中的页面进行操作,例如使用window.document对象向页面写入数据、使用window.location属性来改变框架内的页面等。下面分别介绍不同层次框架间的互相引用:
1.父框架到子框架的引用 知道了上述原理,从父框架引用子框架变的非常容易,即: window.frames["frameName"]; 这样就引用了页面内名为frameName的子框架。如果要引用子框架内的子框架,根据引用的框架实际就是window对象的性质,可以这样实现: window.frames["frameName"].frames["frameName2"]; 这样就引用到了二级子框架,以此类推,可以实现多层框架的引用。
2.子框架到父框架的引用 每个window对象都有一个parent属性,表示它的父框架。如果该框架已经是顶层框架,则window.parent还表示该框架本身。
3.兄弟框架间的引用 如果两个框架同为一个框架的子框架,它们称为兄弟框架,可以通过父框架来实现互相引用,例如一个页面包括2个子框架: <frameset rows="50%,50%"> <frame src="1.html" name="frame1" /> <frame src="2.html" name="frame2" /> </frameset> 在frame1中可以使用如下语句来引用frame2: self.parent.frames["frame2"];
4.不同层次框架间的互相引用 框架的层次是针对顶层框架而言的。当层次不同时,只要知道自己所在的层次以及另一个框架所在的层次和名字,利用框架引用的window对象性质,可以很容易地实现互相访问,例如: self.parent.frames["childName"].frames["targetFrameName"];
5.对顶层框架的引用 和parent属性类似,window对象还有一个top属性。它表示对顶层框架的引用,这可以用来判断一个框架自身是否为顶层框架,例如: //判断本框架是否为顶层框架 if(self==top){ //dosomething }
改变框架的载入页面 对框架的引用就是对window对象的引用,利用window对象的location属性,可以改变框架的导航,例如: window.frames[0].location="1.html"; 这就将页面中第一个框架的页面重定向到1.html,利用这个性质,甚至可以使用一条链接来更新多个框架。 <frameset rows="50%,50%"> <frame src="1.html" name="frame1" /> <frame src="2.html" name="frame2" /> </frameset> <!--somecode--> <a href="frame1.location='3.html;frame2.location='4.html'" onclick="">link</a> <!--somecode-->
引用其他框架内的JavaScript变量和函数
在介绍引用其他框架内JavaScript变量和函数的技术之前,先来看以下代码: <script language="JavaScript" type="text/javascript"> <!-- function hello(){ alert("hello,ajax!"); } window.hello(); //--> </script> 如果运行了这段代码,会弹出“hello,ajax!”的窗口,这正是执行hello()函数的结果。那为什么hello()变成了window对象的方法呢?因为在一个页面内定义的所有全局变量和全局函数都是作为window对象的成员。例如: var a=1; alert(window.a); 就会弹出对话框显示为1。同样的原理,在不同框架之间共享变量和函数,就是要通过window对象来调用。例如:一个商品浏览页面由两个子框架组成,左侧表示商品分类的链接;当用户单击分类链接时,右侧显示相应的商品列表;用户可以单击商品旁的【购买】链接将商品加入购物车。在这个例子中,可以利用左侧导航页面来存储用户希望购买的商品,因为当用户单击导航链接时,变化的是另外一个页面,即商品展示页面,而导航页面本身是不变的,因此其中的JavaScript变量不会丢失,可以用来存储全局数据。其实现原理如下:假设左侧页面为link.html,右侧页面为show.html,页面结构如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title> New Document </title> </head> <frameset cols="20%,80%"> <frame src="link.html" name="link" /> <frame src="show.html" name="show" /> </frameset> </html> 在show.html中展示的商品旁边可以加入这样一条语句: <a href="void(0)" onclick="self.parent.link.addToOrders(32068)">加入购物车</a> 其中link表示导航框架,在link.html页面中定义了arrOrders数组来存储商品的id,函数addToOrders()用来响应商品旁边【购买】链接的单击事件,它接收的参数id表示商品的id,例子中是一个id为32068的商品: <script language="JavaScript" type="text/javascript"> <!-- var arrOrders=new Array(); function addToOrders(id){ arrOrders.push(id); } //--> </script> 这样,在结帐页面或是购物车浏览页面就可以用arrOrders来获取所有准备购买的商品。框架可以使一个页面划分为功能独立的多个模块,每个模块之间彼此独立,但又可以通过window对象的引用来建立联系,是Web开发中的一个重要机制。在Ajax开发中,还可以利用隐藏框架实现各种技巧,在后面介绍Ajax实例编程时可以发现,无刷新上传文件以及解决Ajax的前进后退问题都会用到这种技术
发表评论
-
javascript与日期的相关操作
2018-01-08 17:02 369Js获取当前日期时间及其它操作 var myDate ... -
面向对象
2017-08-24 17:31 499var objPro = { name:"zst ... -
两次encodeURI和URLDecode的原理分析
2017-08-24 12:15 4091当使用地址栏提交查询参数时,如果不编码,非英文字符会按照操 ... -
encodeURI
2017-08-14 21:29 541对于ajax请求,经常会在地址栏传入一些参数,涉及的中文的, ... -
encodeURL
2017-05-04 18:10 568.encodeURL函数主要是来对URI来做转码,它默认是采 ... -
cookie操作 JQuery
2017-03-23 22:18 535首先包含jQuery的库文件,在后面包含 jquery.coo ... -
表单参数一并提交
2017-03-23 13:09 582对于一般的table数据,并且还带有查询条件,我们都会使用j ... -
功能参考
2016-09-12 17:48 480<%@ page language="jav ... -
树形节点设权重,叶子节点设权重
2016-08-19 12:01 1153<%@ page language="jav ... -
除去缓存
2016-08-11 17:04 407IE的showModalDialog方法,缓存很是头疼 ... -
event.srcElement
2016-07-22 16:51 534因为页面的显示内容需要动态生成,所以难免有一些字符串的拼接, ... -
三重循环部分
2016-07-01 11:44 512一串json数据data,格式形如: {{WDNAME:A ... -
base href, new Highchart.Chart()
2016-05-27 17:35 592<% String path = request.g ... -
鼠标点击的位置,滚动条,兼容
2016-05-19 15:58 643j经常要计算鼠标当前点击的位置,并且页面经常发生了滚动。这个 ... -
表单提交页面不跳转
2016-04-05 19:38 1000页面发生表单不跳转,我们可以ajax的形式 当然,有 ... -
HTML图片热区map area的用法
2016-01-04 14:56 564HTML图片热区map area的用法 <a ... -
获取页面高度
2015-12-15 10:26 483$(document).height() //是获取整个页 ... -
iframe中子父窗口互调的js方法
2015-11-12 18:12 952一、父窗口调用iframe子窗口方法 1、HTML语法:&l ... -
数组去重
2015-10-30 08:38 561//将一个含有相同值的数组去重 function getD ... -
dtree树构建
2015-09-15 15:19 480dTree 主页:http://destroydrop.co ...
相关推荐
### JavaScript框架相互引用详解 #### 一、框架与Window对象的关系 在JavaScript中,每一个框架(通常指的是`iframe`)都是一个独立的浏览器窗口。因此,对于任何框架来说,其本质都是一个`window`对象。这意呸着...
只有当所有框架共享相同的源(即他们加载的页面来自同一个域名和端口)时,它们才能相互操作。 随着Web开发技术的发展,HTML5引入了`<iframe>`元素作为`<frame>`的替代,`<iframe>`具有更灵活的使用方式,同时也...
1. **使用`window.parent`和`window.frames`:** `window.parent`引用的是包含当前`iframe`的父窗口,而`window.frames`是一个数组,包含了当前页面所有`iframe`的引用。通过这两个属性,我们可以访问到其他`iframe`...
接下来,我们要实现这两个子页面之间的相互调用。在Silverlight中,这通常通过事件和公共方法来完成。例如,我们可以为Page1添加一个按钮,当点击该按钮时,调用Page2的一个方法。 在Page1.xaml的代码后面(Page1....
框架间的互相引用一个页面中的所有框架以集合的形式作为window对象的属性提供,例如:window.frames就表示该页面内所有框架的集合,这和表单对象、链接对象、图片对象等是类似的,不同的是,这些集合是document的...
父页面可以通过`getElementById`获取特定Iframe的引用,然后在其`onload`事件中调用子页面的方法,如`iframe2.contentWindow.b();`。同时,子页面(如iframe2.html)可以调用父页面的方法,如`parent.test2();`。 ...
总结来说,WPF中的相互调用和参数传递可以通过命令行参数、命名管道、WCF服务等多种方式进行。选择哪种方法取决于你的具体需求,例如数据的复杂性、性能要求和安全性等因素。在设计时,应考虑到可扩展性和维护性,...
在给定的示例中,我们有三个页面:父页面MainForm.aspx和两个子页面FrameA.aspx、FrameB.aspx。MainForm.aspx包含了两个iframe,分别加载了FrameA.aspx和FrameB.aspx。我们可以通过JavaScript来实现这些页面间的交互...
**`frame`的交互**:`frame`之间可以相互通信,比如一个`frame`可以改变另一个`frame`的内容。这通常通过`window.parent`和`window.top`属性来实现,`parent`指的是直接包含当前`frame`的`frame`,而`top`则是最外层...
6. **命令:** 使用ICommand接口和 RelayCommand 类型,Window和Page可以通过命令来触发操作,这样可以在不直接引用对方的情况下实现交互。 7. **资源字典:** 共享样式、模板和数据资源,可以将它们定义在...
SignalR基于WebSocket,支持长轮询、Forever Frame等多种回话保持技术。 6. **跨域问题**: 当JavaScript尝试从不同的源(域名、端口或协议)调用服务器端时,会触发浏览器的同源策略限制。为了解决这个问题,ASP...
通常情况下,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为https),端口号(443为https的默认值),以及主机时,这两个脚本才能相互通信。...otherWindow:其他页面的引用,例如,iframe的c
每个`<frame>` 标签定义了一个独立的浏览区域,`src` 属性指定要加载的网页地址,`name` 属性为框架命名,方便其他页面引用。 4. **`noresize` 属性:** 可以在`<frame>` 标签上添加 `noresize` 属性,禁止用户...
此外,MVVMLight还提供了`Messenger`服务,它是一种简单的消息传递机制,允许不同组件之间相互通信,即使它们没有直接的引用关系。这对于解耦组件和实现模块化设计非常有用。 总之,MVVMLight框架为C#开发者提供了...
框架可以通过`name`属性相互引用,比如在`<a>`链接中使用`target`属性指向某个框架的`name`,使链接在指定框架内打开: ```html <a href="new_page.html" target="frame_name">点击在指定框架打开 ``` 四、`...
let webView = WKWebView(frame: .zero) webView.uiDelegate = self webView.navigationDelegate = self ``` 接着,加载HTML内容,可以通过`load`方法加载URL、HTML字符串或请求对象: ```swift let url = URL...
在Web开发中,`iframe`(Inline Frame)是一种嵌入其他HTML文档的元素,常用于在页面中展示第三方内容或实现页面的分层结构。然而,由于浏览器的同源策略限制,当`iframe`加载的页面与包含它的父页面不在同一个域时...
创建一个公共的依赖属性,然后在不同的窗口中引用它来传递参数。 2. **事件(Events)** 可以通过自定义事件或使用已有的如`Closing`、`Loaded`等事件来传递数据。当一个窗口关闭或加载时,可以触发事件并附带参数...
4. **框架间的相互操作**:通过`<frame>`标签的`name`属性定义窗口标识,然后在链接的`target`属性中引用该标识,可以控制点击链接时在哪个框架中打开新页面。例如: - `_self`:在当前框架中打开链接。 - `_blank...