下面小编就为大家带来一篇快速获取 / 设置 iframe 内对象元素的几种 js 实现方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
1、IE 专用 (通过 frames 索引形象定位): document.frames[i].document.getElementById('元素的 ID');
2、IE 专用 (通过 IFRAME 名称形象定位): document.frames['iframe 的 name'].document.getElementById('元素的 ID');
以上方法,不仅对 IFRAME 适用,对 FRAMESET 里的 FRAME 也同样适用。IE 虽然擅于自定标准,但不得不说它很多的设计还是比较体现人性化的。比如这个,它在同样支持下面的标准路径之外,提供了一个简洁且形象化的写法。
3、通用方法: document.getElementById('iframe 的 ID').contentWindow.document.getElementById('元素的 ID')
注意要加上 contentWindow,往往出现问题都是因为这个容易被忽略,它代表 FRAME 和 IFRAME 内部的窗口对象。
但是,很明显,这种写法非常要命,太长了。如果要操作一系列里面的元素,这样写起来,实在够受的,就算用复制粘贴大法,眼睛看起来也是个问题。
4、通用方法的简写:
对 document.getElementById 定义一个短名称,稍微熟悉 JS 的朋友都知道这个方法。在这里它可以发挥双倍的作用,如下例:
- var $id=document.getElementById;
- $Id('iframe的ID').contentWindow.$Id('元素的ID') //这样就得到了要取的对象
在这一点上,我还是喜欢 IE 的做法,比较呵护。因为微软不是一个单独的浏览器开发商,它本身也要大量地编写开发 html/ASP 等文档,所以比较能够做到这一点。而其它的浏览器开发商,基本只是站在一个浏览器的立场,把最基本的链路走通就完事了,很少站在开发者立场去设计出一些类似这样既简便又不失语义化的捷径来。很多人动辄说它们 "标准",在有些地方固然有理,但在有些地方,这种标准也不过是一种冷漠。
以上这篇快速获取 / 设置 iframe 内对象元素的几种 js 实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 phperz。
来源: http://www.phperz.com/article/17/0301/265603.html