栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

jquery操作 iframe的方法

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jquery操作 iframe的方法

我们先看一下 JQUERY中的对像 contents() 的帮助文件

contents()
概述
查找匹配元素内部所有的子节点(包括文本节点)。如果元素是一个iframe,则查找文档内容


示例
描述:
查找所有文本节点并加粗

HTML
复制代码 代码如下:

Hello Johnhttp://ejohn.org/">John, how are
you doing?


jQuery
复制代码 代码如下:
$("p").contents().not("[nodeType=1]").wrap("");结果:

Hello
Johnhttp://ejohn.org/">John, how are you
doing?


描述:
往一个空框架中加些内容

HTML
复制代码 代码如下:

jQuery
复制代码 代码如下:
$("iframe").contents().find("body")
.append("I'm in an iframe!");

 

去掉iframe 的边界 frameborder="0"

1 内容里有两个ifame

复制代码 代码如下:

leftiframe中jQuery改变mainiframe的src代码:
复制代码 代码如下:
$("#mainframe",parent.document.body).attr("src","http://www.baidu.com")

2 如果内容里面有一个ID为mainiframe的ifame

复制代码 代码如下:


 
在子窗口A、B中我放了一个ID为hello的P,以方便我们进行DOM操作演示,子窗口A、B的主要HTML代码如下:

复制代码 代码如下:

Hello World!


1、在iframe中,父窗口操作子窗口的DOM

建好了父窗口跟子窗口,这样我们可以在父窗口中,通过以下iframeA()函数来把子窗口A更换P的背景颜色为红色:

复制代码 代码如下:
functioniframeA(){//给子窗口A改变ID为hello的背景色
vara=getIframeDOM("wIframeA");
a.getElementById('hello').style.background="red";
}
functiongetIframeDOM(id){//兼容IE、Firefox的iframeDOM获取函数
returndocument.getElementById(id).contentdocument||document.frames[id].document;
}

2、在iframe中,子窗口操作父窗口的DOM

在子窗口中,我们可以方便的进行父窗口DOM操作,只需要在DOM操作之前添加亦歌parent对象的方法就可以啦,如:在上面的子窗口B中,我们可以使用下面的代码把,父窗口中ID为“pHello”的内容给替换掉:

-------------------

3、在iframe中,子窗口A操作子窗口B的DOM

既然子窗口可以操作父窗口的window对象和document对象,那么子窗口也可以操作另外的子窗口的DOM啦~断桥残雪在子窗口B中可以直接使用parent直接调用父窗口中的getIframeDOM函数获得子窗口A的document对象,这样要修改子窗口A的内容就很简单啦,如以下的代码:

复制代码 代码如下:
vara=parent.getIframeDOM("wIframeA");

===================================================================================

一个iframe高度自动变化的问题搞了我半天,网上找了下资料,不是很好,结合了一下jquery(版本1.3.2),4行代码即可,完美兼容IE、Firefox、Opera、Safari、Google
Chrome,js如下:

复制代码 代码如下:
function  heightSet(thisframe){
if($.browser.mozilla || $.browser.msie){
          bodyHeight =window.frames["thisframeName"].document.body.scrollHeight;
}else{
          bodyHeight =thisframe.contentWindow.document.documentElement.scrollHeight;
//这行可代替上一行,这样heightSet函数的参数可以省略了
          //bodyHeight = document.getElementById("thisframeId").contentWindow.document.documentElement.scrollHeight;
}
       document.getElementById("thisframeId").height=bodyHeight; 
}

引用

this关键字在各种浏览器似乎有不同的意思,FF和IE必须要通过iframe的名字去得到内部页面高度,而其他浏览器则可以用this或ID

引用

都在说一个异步的问题,如果你ajax用得特别多,但又不想每次都去设置,那动态改变iframe肯定达不到你的代码清洁要求,没办法,要么你就脱离iframe。我只能说说一般处理方式,毕竟ajax或动态表单在一般应用中只占小数比例,异步请求后只需在后面加上:

Js代码
复制代码 代码如下:
parent.window.heightSet();

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/105324.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号