javascript

位置:IT落伍者 >> javascript >> 浏览文章

解析Jquery取得iframe中元素的几种方法


发布日期:2019年02月05日
 
解析Jquery取得iframe中元素的几种方法
iframe在复合文档中经常用到利用jquery操作iframe可以大幅提高效率这里收集一些基本操作需要的朋友可以参考下

DOM方法
父窗口操作IFRAMEwindowframes["iframeSon"]document
IFRAME操作父窗口: windowparentdocument
jquery方法:
在父窗口中操作 选中IFRAME中的所有输入框 $(windowframes["iframeSon"]document)find(":text");
在IFRAME中操作 选中父窗口中的所有输入框$(windowparentdocument)find(":text");
iframe 框架的HTML<iframe src="testhtml" id="iframeSon" width="″  height="″ frameborder="″ scrolling="auto"></iframe>

在父窗口中操作 选中IFRAME中的所有单选钮
$(windowframes["iframe"]document)find("input[@type=radio]")attr("checked""true");

在IFRAME中操作 选中父窗口中的所有单选钮
$(windowparentdocument)find("input[@type=radio]")attr("checked""true");
iframe框架的
<iframe src="testhtml" id="iframe″ width="″ height="″ frameborder="″ scrolling="auto"></iframe>

复制代码 代码如下:
<HTML xmlns="
<HEAD>
<MCE:SCRIPT mce_src="js/jqueryjs" src="/js/jqueryjs" type="text/ecmascript"></MCE:SCRIPT>
<MCE:SCRIPT type="text/javascript"><!

$(function(){
$("#t")hover(function(){alert();});
//$("iframe")contents()find("body")append("Im in an iframe!");
//$(windowframes["iframe"]document)find("input[@type=text]")attr("size""px");
//$("#iframe")contents()find("#d")css(colorred);
//$(windowframes["iframe"]document)find("input[@name=t]")css({background:"#"});
//$("#iframe")src("testhtml");
});

// ></MCE:SCRIPT>
<DIV>
<INPUT id=t>
<IFRAME id=iframe src="childhtm" mce_src="childhtm"></IFRAME>
<IFRAME height= src="childhtm" width= mce_src="childhtm"></IFRAME>
</DIV>
<DIV>
</DIV>


收集利用Jquery取得iframe中元素的几种方法 :

复制代码 代码如下:
$(documentgetElementById(iframeId)contentWindowdocumentbody)htm()


显示iframe中body元素的内容

复制代码 代码如下:
$("#testId" documentframes("iframename")document)html();


根据iframename取得其中ID为"testId"元素

复制代码 代码如下:
$(windowframes["iframeName"]document)find("#testId")html()


作用同上

收集网上的一些示例
用jQuery在IFRAME里取得父窗口的某个元素的值
只好用DOM方法与jquery方法结合的方式实现了

在父窗口中操作 选中IFRAME中的所有单选钮
$(windowframes["iframe"]document)find("input[@type=radio]")attr("checked""true");

在IFRAME中操作 选中父窗口中的所有单选钮
$(windowparentdocument)find("input[@type=radio]")attr("checked""true");
iframe框架的<iframe src="testhtml" id="iframe" width="" height="" frameborder="" scrolling="auto"></iframe>
IE中测试通过

使用jquery操作iframe
内容里有两个ifame
<iframe id="leftiframe"</iframe>
<iframe id="mainiframe</iframe>
leftiframe中jQuery改变mainiframe的src代码
$("#mainframe"parentdocumentbody)attr("src""

如果内容里面有一个ID为mainiframe的ifame
<iframe id="mainifame"></ifame>
ifame包含一个someID
<div id="someID">you want to get this content</div>
得到someID的内容
$("#mainiframe")contents()find("someID")html() html 或者 $("#mainiframe")contains()find("someID")text()值

在父窗口中操作 选中IFRAME中的所有单选钮
$(windowframes["iframe"]document)find("input[@type=radio]")attr("checked""true");
那选择id自然就是依然使用find方法
$(windowframes["iframe"]document)find("#id")

如上面所示
leftiframe中的jQuery操作mainiframe的内容someID的内容
$("#mainframe"parentdocumentbody)contents()find("someID")html() 或者 $("#mainframe"parentdocumentbody)contents()find("someID")val()

使用JavaScript操纵iframe
框架间的互相引用
一 个页面中的所有框架以集合的形式作为window  对象的属性提供例如windowframes就表示该页面内所有框架的集合这和表单对象链接对象图片对象等是类似的不同的是这些集合是  document的属性因此要引用一个子框架可以使用如下语法
windowframes["frameName"];
windowframesframeName
windowframes[index]
其中window字样也可以用self代替或省略假设frameName为页面中第一个框架则以下的写法是等价的 selfframes["frameName"]
selfframes[]
frames[]
frameName
每 个框架都对应一个HTML页面所以这个框架也是一个独立的浏览器窗口它具有窗口的所有性质所谓对框架的引用也就是对window对象的引用有了这 个window对象就可以很方便地对其中的页面进行操作例如使用windowdocument对象向页面写入数据使用 windowlocation属性来改变框架内的页面等

下面分别介绍不同层次框架间的互相引用
.父框架到子框架的引用
知道了上述原理从父框架引用子框架变的非常容易
windowframes["frameName"];
这样就引用了页面内名为frameName的子框架如果要引用子框架内的子框架根据引用的框架实际就是window对象的性质可以这样实现
windowframes["frameName"]frames["frameName"];
这样就引用到了二级子框架以此类推可以实现多层框架的引用

.子框架到父框架的引用
每个window对象都有一个parent属性表示它的父框架如果该框架已经是顶层框架则windowparent还表示该框架本身

.兄弟框架间的引用
如果两个框架同为一个框架的子框架它们称为兄弟框架可以通过父框架来实现互相引用例如一个页面包括个子框架
<frameset rows="%%">
<frame src="html" name="frame" />
<frame src="html" name="frame" />
</frameset>
在frame中可以使用如下语句来引用frame
selfparentframes["frame"];

.不同层次框架间的互相引用
框架的层次是针对顶层框架而言的当层次不同时只要知道自己所在的层次以及另一个框架所在的层次和名字利用框架引用的window对象性质可以很容易地实现互相访问例如
selfparentframes["childName"]frames["targetFrameName"];

.对顶层框架的引用
和parent属性类似window对象还有一个top属性它表示对顶层框架的引用这可以用来判断一个框架自身是否为顶层框架例如
//判断本框架是否为顶层框架
if(self==top){
//dosomething
}

               

上一篇:js获得指定控件输入光标的坐标兼容IE等多种主流浏览器

下一篇:JavaScript实现点击按钮后变灰避免多次重复提交