- 浏览: 498192 次
- 性别:
文章分类
- 全部博客 (369)
- Java (48)
- Struts (1)
- Spring (4)
- Hibernate (7)
- WebServices (2)
- XML (3)
- web服务器 (12)
- PHP (16)
- FLEX (13)
- Flash (7)
- JavaScript (35)
- Ajax (4)
- Jquery (18)
- EXTJS (7)
- CSS (7)
- HTML (7)
- JSON (5)
- 好玩的 (1)
- 其他 (21)
- Oracle (35)
- mysql (12)
- Linux (12)
- JDBC (2)
- EJB3 (1)
- AOP (1)
- 正则表达式 (6)
- JSF (1)
- 设计模式 (1)
- RBAC (1)
- PowerDesigner (1)
- windows (1)
- 电脑工具软件 (3)
- SEO (3)
- maven (13)
- cms (9)
- JSP (5)
- jpbm (1)
- eclipse (8)
- sql (4)
- android (3)
- 浏览器 (5)
- 国外IT网站 (1)
- 文摘 (1)
- 文档 (31)
- doc命令 (1)
- webgl (1)
- html5 (1)
- ant (1)
- mongodb (0)
- 操作系统 (1)
- Dreamweaver (1)
- hadoop (2)
- xpath (1)
- nutch (1)
- window (1)
- xm (2)
- excel (1)
- httpclient (0)
- YII (2)
- CXF (1)
- Quartz (1)
- jsoup (2)
- wifi (2)
- logback (1)
- 硬件 (1)
- 工具 (3)
- freemark (1)
- ide (2)
- mail (1)
- log (1)
- ueditor (1)
- 链接 (1)
- reaver (2)
- js (1)
- .net (1)
- chrome (1)
- git (1)
- Docker (1)
- unicode (1)
- 多线程 (1)
- 并发 (1)
- Nashorn (3)
- Angular (1)
- curl (1)
- Cygwin (1)
- nashron (1)
- Babel (1)
- React Native (1)
- sip (1)
- openmeetings (1)
- IDEA (0)
- CAS (1)
最新评论
-
沉醉音乐的咖啡:
使用 preventDefault() 函数来阻止对表单的提交。 -
PhoenixHorse:
原表的索引啥的不就失效了吗
oracle修改表精度 -
yupengcc:
资料带走 3Q
RBAC模型 -
Java路:
...
JSON-LIB快速入门(转) -
damoqiongqiu:
utf-8下,E文字符占1个字节,中文字符占3个字节。如果一个 ...
AS3:截取定长度的字符串
如题:在工作中遇到问题。主页面发出事件,该页面中嵌入的iframe的页面也要响应该事件操作。例如主页面登录后,该页面加载的iframe页也要根据登录情况作出不同的显示。
主页面
子页面
关键就是 this.instance = window.parent.CliBase.getInstance(); 这一句 可以将它做成循环一定次数。这样就可以保证多层次结构的页面都可以同时响应事件了。
主页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>主页</title> <script src="base.js" language="javascript"></script> <script> function callsub(){ CliBase.getInstance().dispatchEvent( new Event('testcall','success')); } function testhandler(e){ alert("来自主页面的:"+e.args) } CliBase.getInstance().addEventListener('testcall',testhandler) </script> </head> <body> 主页面 <a href="javascript:callsub();">呼叫子页面</a> <iframe id="aa" src="sub.html" height="500" width="100%" ></iframe> </body> </html>
子页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>subpage</title> <script src="base.js" language="javascript"></script> <script> window.onload = function(){ if(window.parent!=null){ CliBase.getInstance().addEventListener('testcall',testhandler); } } function testhandler(e){ document.getElementById("output").innerHTML="来自子页面的"+e.args; } </script> </head> <body> ifamre中的页面 <div id="output" align="ouput"></div> </body> </html>
// JavaScript Document function Event(type,args) {this.type = type; this.args = args;} /** * @author andypan * 操作基类 */ var CliBase = (function() { var _eventList = new Array(); var uniqueInstance; // Private attribute that holds the single instance. // Return the constructor. return function() { // implements Publication this.getEventList = function() {return _eventList;} }})(); CliBase.prototype.addEventListener = function(EventType,handler){ this.getEventList().push([EventType,handler]); } CliBase.prototype.removeEventListener = function(EventType,handler){ for(var i=0;i<this.getEventList().length;i++){ if((EventType==this.getEventList()[i][0])&&(handler==this.getEventList()[i][1])){ this.getEventList().splice(i,1); } } } CliBase.prototype.dispatchEvent = function(Event){ for(var i=0;i<this.getEventList().length;i++){ if(Event.type==this.getEventList()[i][0]){ this.getEventList()[i][1](Event); } } } CliBase.getInstance = function(){ if(this.instance ==null) this.instance = new CliBase(); if(window.parent!=window){ //子页面被实例化后,替换现有实例 this.instance = window.parent.CliBase.getInstance(); } return this.instance; }
关键就是 this.instance = window.parent.CliBase.getInstance(); 这一句 可以将它做成循环一定次数。这样就可以保证多层次结构的页面都可以同时响应事件了。
发表评论
-
js add day
2016-05-18 21:32 0function addDays(date, days) ... -
js字段转列
2016-05-11 19:29 582function fieldToColumn(str) { ... -
nashron Arttemplate
2015-12-05 14:35 767load("http://aui.github. ... -
javascript 生成菜单
2015-02-05 13:38 658var memu="<ul style=' ... -
Example of a Javascript Closure: setTimeout Inside a For Loop
2015-01-08 22:18 595for(var i = 1; i <= 2; i++ ... -
Ctrl + Key Combination – Simple Jquery Plugin
2014-12-31 12:26 564http://www.gmarwaha.com/blog/20 ... -
ueditor 工具栏(按钮栏)取消 浮动(悬停,漂浮.***)
2014-10-16 14:48 3531这个设置工具栏浮动的 ueditor.config.js修改 ... -
JavaScript获取HTML页面源代码
2014-10-09 11:15 520<a href="javascript:g ... -
编辑器
2014-09-28 16:04 551Ueditor(51CTO博客编辑器) TinyMCE(博客园 ... -
tmall T码
2014-06-07 13:48 861setInterval(function () { $ ... -
ext combox添加空值项
2014-05-15 10:44 866listeners:{expand:initComboBo ... -
js Objec->String
2014-05-13 15:39 743function obj2string(o){ var ... -
js 正则测试
2014-03-31 16:31 494forTemple="类别1:{类别1}|类别2 ... -
JavaScript的性能优化:加载和执行
2013-09-09 09:28 802随着Web2.0技术的不断推广,越来越多的应用使用 Jav ... -
时间戳转时间函数
2013-01-18 10:32 783function(data) { var d=n ... -
jquery 控制 select radio checkbox input 不可修改
2012-10-26 20:44 4873$("#formTab5,#formTab4 ... -
js正则
2012-08-30 15:02 0var pattern1 =/\[bc\]at/i; ... -
chrome developer tool 调试技巧
2012-08-22 16:01 1055chrome developer tool 调试技巧 ... -
Easyui ‘Rowspan’ 为空或不是对象
2012-06-06 11:46 0出现 ‘Rowspan’ 为空或不是对象异常是因为 $( ... -
HTML DOM Event 对象 方法
2012-05-23 10:52 950http://www.w3school.com.cn/html ...
相关推荐
为了解决这些不一致,开发者需要编写额外的代码来封装这些原生的事件监听方法,从而实现跨浏览器兼容的事件系统。文章中提到的dom.attachEvent和dom.detachEvent就是这种封装的实现。这些封装函数负责处理不同浏览器...
【微信小程序跨页面数据传递事件响应实现过程解析】 在微信小程序开发中,有时我们需要在不同页面之间传递数据,尤其是在用户在第二个页面完成某些操作后,需要将这些操作结果反馈到上一个页面。本文将详细讲解如何...
在IT领域,JavaScript(JS)和ActiveX控件(OCX)是两种不同的技术,但它们可以协同工作,实现跨语言交互。标题“delphi 中 js 响应ocx事件内容”表明我们要讨论的是如何在Delphi开发的OCX控件中集成JavaScript,...
JavaScript文件则可能包含交互逻辑,例如响应式导航菜单的切换效果,或者触屏设备的滑动事件处理。 Bootstrap是一个广泛使用的响应式前端框架,它简化了响应式设计的实现。Bootstrap提供了预设的CSS类和JavaScript...
总结来说, ViaBus 是一款利用响应式架构和事件总线思想实现UI与业务解耦的工具,它简化了Node.js应用中组件间的通信,提升了系统的可扩展性和可维护性。通过深入理解和实践 ViaBus,开发者可以构建更加健壮、易于...
JavaScript,jQuery Mobile和Node.js是现代网页开发中的关键技术,它们各自扮演着不同的角色,而将它们结合起来可以创建出强大的、跨平台的网页应用。在这个项目中,我们看到这三个技术的融合,为开发者提供了从桌面...
在“响应式设计css+兼容手机+平板+电脑PC 跨屏响应式布局前端开发CSS框架”这个主题中,我们将深入探讨响应式设计的核心概念、关键技术以及如何使用CSS框架实现跨屏布局。 首先,响应式设计的核心在于媒体查询...
标题中的“AngularJS + Node.js 实现跨平台考勤管理系统”揭示了这个项目的核心技术栈,包括前端的AngularJS框架和后端的Node.js环境。AngularJS是Google维护的一个前端JavaScript框架,它允许开发者构建高性能、...
本资源“JS实现的网页键盘与本地键盘交互式响应源码.zip”似乎包含了一个示例,演示了如何使用JavaScript来模拟一个网页键盘并与用户的物理键盘进行交互。这个例子对于理解JavaScript事件处理和用户输入的处理机制...
实现轮播图通常需要用到JavaScript来控制图片的切换,这包括设置定时器自动切换,添加导航点(小圆点)以显示当前选中的图片,以及处理左右箭头点击事件来手动切换图片。同时,考虑到移动端的触摸事件,可能还需要...
jQuery轻量级跨平台响应式导航菜单插件Trunk.js是一款非常实用的实现轻量级响应式跨平台的jQuery导航菜单插件的代码。该插件会根据viewport的大小来重置导航菜单。在大屏幕设备中,导航菜单以常规的水平菜单展示,在...
`js`目录中可能包含主JavaScript文件,如`script.js`,以及可能的库文件,如jQuery,它简化了DOM操作和事件处理。 4. **gulpfile.js**: 这是一个Gulp任务配置文件,Gulp是一个自动化工具,常用于前端开发流程,如...
### js事件广播实现数据传递 在JavaScript开发中,事件机制是一种非常重要的编程模式,它可以用于在不同的组件或模块之间进行通信。特别是在复杂的前端应用中,合理利用事件机制能够有效地提高代码的可维护性和扩展...
Bootstrap的核心特性之一就是响应式设计,能够根据设备的屏幕尺寸自动调整布局,实现跨平台兼容。 在这个模态登录框插件中,模态(Modal)是Bootstrap的一个重要组件。模态对话框通常用于展示临时内容,如警告、...
3. **事件处理**:为了实现翻页行为与PDF页面之间的交互,需要监听 `turn.js` 的翻页事件,如 'turn' 或 'afterturn',并在这些事件触发时更新 `pdf.js` 显示的页面。 4. **性能优化**:由于提到有内存问题,可能是...
在本知识点中,我们将探讨如何使用JavaScript实现对OCX控件事件的响应。为了实现这一功能,我们需要完成以下步骤: 1. 在OCX控件中添加自定义事件。这通常需要使用控件的设计环境,例如Visual C++的ActiveX控件开发...
本文将深入探讨如何使用JavaScript来实现跨浏览器的事件侦听器(事件监听器)和事件对象。 首先,事件侦听器是用于响应特定事件的函数,例如点击、鼠标移动等。在W3C标准中,推荐使用`addEventListener`方法来添加...
响应式页面设计是一种现代网页开发技术,旨在提供跨设备、跨屏幕尺寸的无缝用户体验。它通过灵活的布局、媒体查询和动态图像调整来确保网页在手机、平板电脑和桌面电脑等不同设备上都能正常显示。在这个名为“响应式...
JavaScript是一种解释型的、跨平台的编程语言,主要用于控制网页的行为,如响应用户操作、更新动态内容、处理数据等。在翻页效果中,JS通过监听用户对页面的操作(如点击、滑动),然后改变或加载新的页面内容来模拟...