惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
量子位
有赞技术团队
有赞技术团队
博客园 - 三生石上(FineUI控件)
博客园 - Franky
M
MIT News - Artificial intelligence
U
Unit 42
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
J
Java Code Geeks
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
MyScale Blog
MyScale Blog
T
Tailwind CSS Blog
T
The Blog of Author Tim Ferriss
V
V2EX

博客园 - Young.Jiang

Javascript模拟c#方法重载 设计模式学习:适配器模式 Linq学习笔记(2.3)——DLinq高级操作 Linq学习笔记(2.2)——深入DLinq查询 Linq学习笔记(2.1)——初识 DLinq Linq学习笔记(1.8)——Count、Sum、Min、Max、Average Linq学习笔记(1.7)——First、ElementAt、Any、all Linq学习笔记(1.6)——ToArray、ToList、ToDictionary、OfType Linq学习笔记(1.5)——group、Distinct、Union、Concat、Intersect、Except Linq学习笔记(1.4)——orderby、Reverse() Linq学习笔记(1.3)——Take、Skip Linq学习笔记(1.2)——select Linq学习笔记(1.1)——where 理解JavaScript中的对象 Asp.net Ajax 客户端编程(二)——Type 类,面向对象编程的开始 Asp.net Ajax 客户端编程(一)——对JS基本类型的扩展 提高.NET性能的最佳实践 EnterpriseLibrary 3.0的缓存应用程序块 EnterpriseLibrary 3.0的验证应用程序块
Iframe的高级操作
Young.Jiang · 2009-03-09 · via 博客园 - Young.Jiang

来源:http://www.kale100.cn/article/web/24.htm

最近在编写研究Fck编辑器控件,也有同事问我iframe高度自适应的问题,其实这都是操作iframe的对象问题,希望看了这篇文章后能解决大家的疑惑。

       这样的操作需要提供两个页面,一个页面是iframe所在页面(页面名称:parent.htm),另一个页面是iframe属性src指向页面(页面名称:child.htm)。
parent.htm,<body>里dom:

1 <iframe id="iId" name="iName" src="frame.htm" scrolling="no" frameborder="1" style=" border:solid 1px blue"></iframe> 

child.htm,<body>的元素如下:

1 <body style=" height:400px; vertical-align:top">   
2      这是Frame红的DIV<br />   
3       高度时400px    
4 </body>  

获取Iframe对象内容

1 function getFrameContent() {    
2     var iObj = document.getElementById("iId").contentWindow;    
3     alert(iObj.document.getElementsByTagName("body")[0].innerHTML);    
4 }  

iframe对象的contentWindow属性在ie6,ie7,firefox2.0,firefox3.0下都测试通过,大家可以放心使用。

设置Iframe的高度随frame的内容高度自适应

1 function setFrameHeight() {       
2      var iObj = document.getElementById('iId');       
3      iObj.height =  iObj.contentWindow.document.documentElement.scrollHeight;       
4  


在网上有很多设置iframe内容自适应的代码网上看到很多,我试了,很多很麻烦都不能用,其实并不复杂。只需在iframe onload的时候运行这个函数就行了。

设置Iframe的内容自适应

 1 function setFrameEdit() {    
 2     var iObj = document.getElementById('iId').contentWindow;    
 3     iObj.document.designMode = 'On';    
 4     iObj.document.contentEditable = true;    
 5     iObj.document.open();    
 6     iObj.document.writeln('<html><head>');    
 7     iObj.document.writeln('<style>body {font-size:9pt;margin: 2px; padding: 0px;}</style>');    
 8     iObj.document.writeln('</head><body></body></html>');    
 9     iObj.document.close();    
10 

      什么效果,大家看看下面的Demo就明白了,iframe变成了一个可编辑得编辑区,现在网站上的编辑器都是用这个原理进行的。

      DEMO