(转)获取/设置IFRAME内对象元素的几种JS方法

原帖地址:http://blog.csdn.net/theforever/article/details/6126635

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的朋友都知道这个方法。在这里它可以发挥双倍的作用,如下例:

  1. var $id=document.getElementById;
  2. $Id(‘iframe的ID‘).contentWindow.$Id(‘元素的ID‘)  //这样就得到了要取的对象

var $id=document.getElementById;
$Id(‘iframe的ID‘).contentWindow.$Id(‘元素的ID‘) //这样就得到了要取的对象

在这一点上,我还是喜欢IE的做法,比较呵护。因为微软不是一个单独的浏览器开发商,它本身也要大量地编写开发HTML/ASP等文档,所以比较能够做到这一点。而其它的浏览器开发商,基本只是站在一个浏览器的立场,把最基本的链路走通就完事了,很少站在开发者立场去设计出一些类似这样既简便又不失语义化的捷径来。很多人动辄说它们“标准”,在有些地方固然有理,但在有些地方,这种标准也不过是一种冷漠。

转载请注明来自赵亮(theforever on csdn)的博客。

时间: 2024-11-08 08:24:57

(转)获取/设置IFRAME内对象元素的几种JS方法的相关文章

【转】获取/设置IFRAME内对象元素的几种JS方法

1.IE专用(通过frames索引形象定位): document.frames[i].document.getElementById('元素的ID'); 2.IE专用(通过IFRAME名称形象定位): document.frames['iframe的name'].document.getElementById('元素的ID'); 以上方法,不仅对IFRAME适用,对FRAMESET里的FRAME也同样适用.IE虽然擅于自定标准,但不得不说它很多的设计还是比较体现人性化的.比如这个,它在同样支持下

.NET前后台-JS获取/设置iframe内对象元素并进行数据处理

转载请注明出处:果冻栋吖 这个主要是修改H3BPM一个批量审批的功能时候做的.先看下图: H3自带了批量审批的功能,也就是按钮1,有审批意见3,但是如果3里边不填写内容点击1之后,效果就是表单里边没有任何内容.其次可以依次点击每个表单的提交按钮进行提交.会提交对应的审批意见.现在的需求是:增加一个按钮,但是需要提交所有流程的审批内容,因为他们并不可能完全一样.也就是这里的2. 前台HTML代码: <asp:LinkButton ID="btnApproveone" runat=&

JS获取/设置iframe内对象元素、文档的几种方法

1.IE专用(通过frames索引形象定位): document.frames[i].document.getElementById('元素的ID'); 2.IE专用(通过iframe名称形象定位): document.frames['iframe的name'].document.getElementById('元素的ID'); 以上方法,不仅对iframe适用,对frameset里的frame也同样适用.IE虽然擅于自定标准,但不得不说它很多的设计还是比较体现人性化的.比如这个,它在同样支持下

web页面元素的8种定位方法

一.web页面元素定位工具介绍 1.打开google浏览器,按F12进入开发者模式,如下图: 2.用鼠标点击下图红色框中的箭头——然后鼠标移动到web页面的元素上(此处为百度框),会自动定位到对应的html代码,如下图: 二.web页面元素的8种定位方法: 1.通过元素的id属性来定位元素——id是唯一标识(每个id都是不一样的) driver.find_element_by_id("kw")     1 from selenium import webdriver 2 driver=

js获取url的参数和值的N种有效方法

js获取url的参数和值的N种有效方法 function getParameterByName(name) { name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); var regexS = "[\\?&]" + name + "=([^&#]*)"; var regex = new RegExp(regexS); var results =

Js获取/设置行内样式和非行内样式

1.获取行内(内嵌.行间)样式: obj.style.attr;进行获取非行间样式. 2.设置行内样式: obj.style.attr = value; 3.获取非行内样式: function getStyle(obj,attr){ //获取非行间样式,obj是对象,attr是值 if(obj.currentStyle){ //针对ie获取非行间样式 return obj.currentStyle[attr]; }else{ return getComputedStyle(obj,false)[

JavaScript的DOM_获取/设置/移除特定元素节点的属性_getAttribute()/setAttribute()/removeAttribute()

一.获取特定元素节点的属性的值_getAttribute() 1.getAttribute()方法将获取元素中某个属性的值.它和直接使用.属性获取属性值的方法有一定区别. <script type="text/javascript"> window.onload = function(){ var box = document.getElementById('box'); alert(box.bbb); // 获取元素的自定义属性值,非 IE 不支持 自定义的属性不可以,结

使用jquery获取iframe内的元素属性

当需要获取iframe里的内容时需要有几个前提,否则你是获取不到的: 1:当前页面与iframe的src的页面需要在同一个域名下: 2:必须要等iframe里边的页面加载完成才能获取,否则你要获取的标签就是不存在: 当这两个条件都满足的时候你就可以获取了(以下例子是本精灵通过jquery修改iframe(" iframe的ID名被取为了iframeName'")里页面的所有a标签的target属性值): function a_load(){ var isOnLoad = true; $

获取和设置iframe中的元素

http://www.cnblogs.com/gao-qiang/archive/2012/09/19/2694336.html http://java-my-life.iteye.com/blog/1275205 http://www.cnblogs.com/fangjins/archive/2012/08/17/2643461.html http://www.jb51.net/article/46851.htm http://blog.csdn.net/theforever/article/