使iframe随内容(target到iframe的内容)改变而自适应高度,完美解决各种获取第一个demo高度后第二个高度不变情况

转自:http://caiceclb.iteye.com/blog/281102

很高兴,终于使用jquery实现了点击外部链接,更改iframe内容时,iframe的高度自适应问题。

失败的测试就不说了,来直接的。

两个链接和iframe:

Java代码  

  1. <li><a href="selfinfo.jsp" target="c-c-iframe" title="个人信息" >个人信息</a></li>
  2. <li><a href="modifypass.jsp" target="c-c-iframe" title="修改密码" >修改密码</a></li>
  3. <iframe src="init.jsp" id="c-c-iframe" name="c-c-iframe" width="500px;"  frameborder="0" scrolling="no" marginwidth="0" marginheight="0"></iframe>

js代码:

Java代码  

  1. <script type="text/javascript">
  2. <!--
  3. $(function(){
  4. $("#c-c-iframe").load(function(){
  5. $(this).height($(this).contents().find("#content").height() + 40);
  6. });
  7. });
  8. -->
  9. </script>

这里的find("#content")是找出iframe内容文档中的id为content的高度(另外比如find("body")),并设置给iframe, 
类似的还可以设置宽度,留给需要的朋友尝试吧。

这样就解决了iframe不会因为内容过大被挡住的问题(因为我设置了scrolling="no")。

PS:基本上我会优先考虑使用iframe来实现无刷新,兼容浏览器的后退按钮;而且使用iframe加载flash是很爽的,不用写什么js调用,object标签,还符合W3C标准。 
推荐下面这种
2008年11月28日17:13:31 ,今天使用过程中根据实际情况进行了一下改良,代码如下:

Java代码  

  1. <script type="text/javascript">
  2. <!--
  3. $(function(){
  4. $("#workArea").load(function(){
  5. var height = $(this).contents().find("#box").height() + 40;
  6. //这样给以一个最小高度
  7. $(this).height( height < 400 ? 400 : height );
  8. });
  9. });
  10. -->
  11. </script>

另发现使用find("body")不太好使,高度不准确。

时间: 2024-08-05 15:21:19

使iframe随内容(target到iframe的内容)改变而自适应高度,完美解决各种获取第一个demo高度后第二个高度不变情况的相关文章

谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!

谷歌.火狐浏览器下实现JS跨域iframe高度自适应的解决方法 导读:今天开发的时候遇到个iframe自适应高度的问题,相信大家对这个不陌生,但是一般我们都是在同一个项目使用iframe嵌套页面,这个ifame高度自适应网上一搜一大把,今天要讲的如何在不同的网站下进行相互的调用跟在同一个网站下是一个效果:例如我在自己的项目里面Iframe  了第一博客的页面  http://www.diyibk.com/   当第一博客的页面高度变化了怎么通知父页面呢? 这个时候在谷歌下肯定是拿不到 ifram

页面嵌套iframe时,怎样让iframe高度根据自身内容高度自适应

总体思路是这样的,因为iframe里页面的内容是动态加载的,而且电脑屏幕宽度发生变化时,也得相应的去改变iframe标签的高度(如果高度确定就不用这么麻烦了): 首先,我们在父页面中定义一个方法,用来改变iframe标签的高度:在iframe中的页面中,当内容加载号之后去调用父页面汇总的这个方法(因为要根据内容自适应高度): 然后再处理,当屏幕发生改变时,在子页面汇总调用父页面汇总的这个方法: 父页面代码: <!DOCTYPE html> <html lang="en"

转:iframe加载的子页面里面获取父级元素窗口以及元素的高度

iframe里的js要操作父级窗口的dom,必须搞懂几个对象: parent是父窗口(如果窗口是顶级窗口,那么parent==self==top) top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe) self是当前窗口(等价window) 父级页面:index.html <!doctype html> <html> <head> <meta charset="utf-8"> <title>父窗口<

Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法

在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素.或者在iframe框架中使用父窗口的元素 js 在父窗口中获取iframe中的元素  1. 格式:window.frames["iframe的name值"].document.getElementByIdx_x("iframe中控件的ID").click(); 实例:window.frames["ifm"].document.getElementByIdx_

iframe中有ajax,设置iframe自适应高度

------------------------------------------------------------------- http://www.jb51.net/article/15780.htm http://www.jb51.net/article/48936.htm http://bestchenwu.iteye.com/blog/1231956 在iframe外添加此js,以下两个都可以 ------------1---------------------------- f

iframe 跨域自适应 纯css解决方法

<style type="text/css">body{background:#f00;}body, html,#ifm1{width:100%;height:100%;overflow:hidden;margin:0;}#ifm1{width:100%;height:100%;overflow:hidden;margin:0;}</style><iframe id="ifm1" src='http://www.csdn.net' fr

利用Azure内容审查器审查违规内容(上)

首先来解释下什么是内容审查器:Azure 内容审查器 API 是一项认知服务,用于检查文本.图像和视频中是否存在可能的冒犯性内容.危险内容或其他令人不适的内容. 找到此类内容时,此服务会将相应的标签(标记)应用到该内容.然后,应用会处理标记的内容,使之符合法规的要求,或者为用户维持一个理想的环境. 根据这些特性,我们可想而知,它的应用是十分广泛的,可以应用到社交通讯平台的内容审查,媒体公司的内容审查,游戏公司的聊天室审查等等. 如图所示,内容审查器服务包含多个可以通过 REST 调用和 .NET

怎么判断字符串a的内容包含字符串b的内容

在vb.net可以使用InStr(a,b)方法来判断字符串a的内容是否包含字符串b的内容. InStr(a, b) 如果a中包含有b则InStr(a, b) 返回一个大于0的值,如果不含有b则返回0.可以通过返回值来判断. c#中可以使用 IndexOf语句 public class Example { public static void Main() { string s1 = "ani\u00ADmal"; string s2 = "animal"; // F

ajax 一个 gbk 目标后内容乱码的解决方案

ajax 一个 gbk 目标后,如果内容出现乱码,说明服务器在送出内容时没有指定 charset,ajax 对于没有指定 charset 的 response 默认以 utf-8 来处理,所有出现乱码,本以为若目标不可控则此问题无解,无意中发现 xhr 对象的 overrideMimeType 方法居然可以强势修复这个问题,大大让我惊喜啊! 解决方法备注如下: xhr.overrideMimeType( "text/html;charset=" + charset ); 原文:http