`
qepwqnp
  • 浏览: 114716 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

js_自己封装一个可查询frame中对象的一个方法

 
阅读更多

说明

用途: 查询当前页面以及所包含的frame中id为传入的参数的对象,如本身页面为frame,还可查询上级页面中id为传入参数的对象。

参数:可传入对象id,以及对象本身

返回:返回所传id的对象

 

用法:如查询id为javaeye的对象

 

var xx = $$('javaeye');
 

方法原码如下:

 

function $$(id){
	if(typeof id == 'string'){
		var obj = document.getElementById(id);		
		if(obj)return obj;	
		var p = window;
		//先搜索自己的子frame
		var fs = [];
		for(var k=0; k<p.frames.length; ++k){
			fs.push(p.frames[k]);
		}
		for(var i=0; i<fs.length; ++i){
			try{
				obj = fs[i].document.getElementById(id);
			}catch(e){
				obj = null;
			}
			if(obj)return obj;
			for(var k=0; k<fs[i].frames.length; ++k){
				fs.push(fs[i].frames[k]);
			}
		}
		
		//找到最高层window
		while(p.parent != p){
			p = p.parent;
		}
		obj = p.document.getElementById(id);
		if(obj)return obj;
		
		//frames
		var fs = [];
		for(var k=0; k<p.frames.length; ++k){
			fs.push(p.frames[k]);
		}
		for(var i=0; i<fs.length; ++i){
			try{
				obj = fs[i].document.getElementById(id);
			}catch(e){
				obj = null;
			}
			if(obj)return obj;
			for(var k=0; k<fs[i].frames.length; ++k){
				fs.push(fs[i].frames[k]);
			}
		}
		alert('can not get object for:' + id); 
	}else if(typeof id == 'object')
		return id;
	else
		alert('can not get object for:' + id);  //可写成记录日志方法,或其它处理
}
 

 

请高手赐教,以使更加完善!!

 

分享到:
评论
1 楼 qepwqnp 2011-01-25  
帖子沉的好深,涝起来

相关推荐

    函数之间调用同一个对象方法

    在给定的例子中,“函数之间调用同一个对象方法”指的是在一个函数内部创建对象并调用其方法,然后在另一个函数中再次调用同一对象的相同或不同方法。这种模式常见于事件驱动的编程环境,例如游戏开发或GUI应用程序...

    swift-针对WKWebView进行的封装支持和H5交互包括调用js方法等

    在提供的xlsd-SDWebView-2b46dcc资源中,可能包含了一个经过封装的WKWebView组件,它可能集成了上述功能,并提供了更简洁的API来方便开发者使用。如果你在项目中使用这个库,可以节省大量编写和调试代码的时间,提高...

    backbone_api_frame

    Backbone_API_frame是一个基于Backbone.js和ExtJS开发的API框架,主要目的是为了提供一个高效、结构化的Web应用开发解决方案。这个框架结合了Backbone.js的模型-视图-控制器(MVC)架构和ExtJS的组件化能力,旨在...

    JavaScript之浏览器对象

    在JavaScript编程中,浏览器对象构成了一个复杂的模型,允许开发者与用户的浏览器进行交互,提供了一系列方法和属性来操作页面元素和用户行为。本篇将详细介绍这些关键的浏览器对象。 一、对象(Object) 在...

    ios-封装一个简单的webView,代码里有使用说明.zip

    - **加载URL**:调用`loadRequest:`方法,传入一个`NSURLRequest`对象,这个对象通常由URL创建。 ```swift let url = URL(string: "https://www.example.com") let request = URLRequest(url: url!) webView.load...

    swift-WKWebView封装快速浏览网页

    在类中声明一个WKWebView的属性,并在初始化方法中设置其frame和配置。 - 提供加载URL的方法,如`loadURL(_:)`,在其中创建URLRequest并调用WKWebView的加载方法。 - 可以添加额外的功能,如拦截请求、注入...

    自定义JS类框架

    2. 原型链:JavaScript中的原型允许对象间共享属性和方法。`__proto__`指向了构造函数的`prototype`,而`prototype`上定义的方法可以被所有实例访问。自定义框架可能利用这一点创建通用的功能。 3. jQuery集成:...

    small ajax frame

    "small ajax frame"是一个以面向对象风格设计的轻量级JavaScript库,专注于AJAX(Asynchronous JavaScript and XML)技术的实现。它旨在提供一个简洁、高效的方式来处理网页的异步数据交互,提升用户体验,减少页面...

    iframe跨域通信解决方法

    - **全局Cross对象**:`crossUtils.js`中定义了一个全局对象`Cross`,其下有两个主要属性: - `signalHandler`:存储注册的信号及其对应的回调函数。 - `on`:用于注册一个信号及其回调函数。 - `call`:用于向...

    Java调用javaScript代码

    例如,你可以在Java服务端定义一个接口,该接口允许在运行时加载和执行JavaScript脚本来完成特定任务,这样就能轻松地切换或更新业务逻辑,而无需重新编译和部署Java代码。 在实际项目中,这种方法可以应用于许多...

    01-JavaScript-基础1

    它不支持像抽象、继承、重载等面向对象语言的特性,而是提供了一个强大的对象系统,允许开发者根据需求创建自己的对象。然而,JavaScript仍保留了一些面向对象的基本特征,比如封装和组合,这使得它在实际应用中表现...

    js技术,200个js技巧

    在 JavaScript 中,对象的方法是与对象相关的函数。它们通常是对象属性的函数形式,用于执行与该对象相关的操作。例如,Array 对象有多种内置方法,如 `push()`、`pop()` 和 `slice()`: ```javascript let arr = ...

    源文件程序天下JAVASCRIPT实例自学手册

    7.7 Frame对象 7.7.1 框架集文档中对象的结构 7.7.2 控制指定的框架 7.7.3 常见属性和方法汇总 7.7.4 Frameset对象 7.7.5 iframe元素对象 7.8 Document对象 7.9 本章小结 第8章 Document对象 8.1 对象模型参考 8.2 ...

    MFC ie webbrowser iframe/frame

    MFC封装了Windows API,使得开发者可以更高效地编写应用,而IE WebBrowser控件则是MFC中用于嵌入Web内容的一个组件。这个控件实际上是Internet Explorer的核心引擎,允许应用程序在自身界面内展示网页内容。 标题...

    WKWebView下iOS与JS相互调用

    **WKWebView:iOS与JS交互实现详解** 在iOS开发中,WKWebView是苹果提供的一款用于展示网页内容的组件,它取代...在实际项目中,根据需求,你可以进一步封装这些方法,打造自己的JSBridge,提高代码复用性和可维护性。

    Android_WebView、Webkit内核深入讲解

    * BrowserFrame.java:BrowserFrame 对象是对 WebCore 库中的 Frame 对象的 Java 层封装,用于创建 WebCore 中定义的 Frame,以及为该 Frame 对象提供 Java 层回调方法。 * ByteArrayBuilder.java:ByteArrayBuilder...

    JavaScript基础和实例代码

    7.7 Frame对象 7.7.1 框架集文档中对象的结构 7.7.2 控制指定的框架 7.7.3 常见属性和方法汇总 7.7.4 Frameset对象 7.7.5 iframe元素对象 7.8 Document对象 7.9 本章小结 第8章 Document对象 8.1 对象模型参考 8.2 ...

    js对象关系图 方便dom操作

    JavaScript对象关系图(通常称为JS Object Graph或DOM Tree)是表示网页中元素和它们相互关系的一种可视化工具。在Web开发中,DOM(Document Object Model)是HTML和XML文档的编程接口,它将文档结构转化为一系列...

    植物大战僵尸Javascript版web游戏源码.zip

    4. **游戏对象和类**:游戏中的每一个角色,如植物、僵尸和道具,都可以看作是JavaScript中的对象。源码可能定义了一系列的类,用来描述这些对象的属性和行为,这是面向对象编程的基本思想。 5. **事件监听和处理**...

    Javascript

    对象是JavaScript的核心,它允许开发者将多个属性和方法封装在一起。 JavaScript与正则表达式(Regular Expressions)的结合使用是处理文本的强大工具,用于在字符串中执行搜索、替换等操作。正则表达式提供了在...

Global site tag (gtag.js) - Google Analytics