iframe的几个常见问题

iframe的几个常见问题

 1.iframe的透明问题

除了IE家族,其他标准浏览器默认iframe是透明的。

对应IE7+ 的浏览器:

加个allowtransparency="true"如下

 

  
  
  1. <!DOCTYPE HTML> 
  2. <html> 
  3. <head> 
  4. <title>无标题</title> 
  5. </head> 
  6. <body style="background-color:#ccc;"> 
  7. <iframe allowtransparency="true" src="ifrm.html"></iframe> 
  8. </body> 
  9. </html> 

对应ie6还要设置iframe页面的body背景透明

 

  
  
  1. <!DOCTYPE HTML> 
  2. <html> 
  3. <head> 
  4. <title>内框架页</title> 
  5. </head> 
  6. <body style="background-color:transparent;"> 
  7. 这里是内框架页面。 
  8. </body> 
  9. </html> 

注:如果iframe页面不在同一域下,发现此方法失效。

2.去边框,滚动条等

 边框:

除了ie家族,可以使用css的border:none;实现。

ie得需设置iframe的frameborder="no"或者frameborder="0"实现,于是兼容的写法如下:

 

  
  
  1. <iframe allowtransparency="true" src="ifrm.html" style="border:none;" frameborder="no"></iframe> 

滚动条:

隐藏滚动条可以用scrolling="no"(此方式兼容所有的浏览器)

  
  
  1. <iframe allowtransparency="true" src="ifrm.html" scrolling="no" style="border:none;" frameborder="no"></iframe> 

 

对于ie8,ff3,chrome等,设置框架页的body的overflow:hidden;也可以隐藏滚动条(ie6,7,或者iframe页面对你不可控时不行)。

3.iframe自适应宽高度

 注:iframe的默认尺寸是300*150px

 方法是在iframe文档的onload加载句柄里做

 

  
  
  1. <iframe id="myifrm" onload="this.height=myifrm.document.body.scrollHeight;" allowtransparency="true" src="ifrm.html" scrolling="no" style="border:none;" frameborder="no"></iframe> 

 就把iframe里的页面的高度赋值给iframe框架窗口高度。

但这个火狐,认name窗口名,不信可以把id改成name试试,所以,兼容的写法是同时加上name,如:

 

  
  
  1. <!DOCTYPE HTML> 
  2. <html> 
  3. <head> 
  4. <title>无标题</title> 
  5. </head> 
  6. <body style="background-color:#ccc;"> 
  7. <iframe id="myifrm" name="myifrm" onload="this.height=myifrm.document.body.scrollHeight;" allowtransparency="true" src="ifrm.html" scrolling="no" style="border:none;" frameborder="no"></iframe> 
  8. </body> 
  9. </html> 

或者不写name也行(ie6,7未测试):

 

  
  
  1. <!DOCTYPE HTML> 
  2. <html> 
  3. <head> 
  4. <title>无标题</title> 
  5. </head> 
  6. <body style="background-color:#ccc;"> 
  7. <iframe id="myifrm" onload="this.height=document.getElementById('myifrm').contentDocument.body.scrollHeight;" allowtransparency="true" src="ifrm.html" scrolling="no" style="border:none;" frameborder="no"></iframe> 
  8. </body> 
  9. </html> 

 

这里再提供一个网上写好的一个函数:

 

  
  
  1. <!DOCTYPE HTML> 
  2. <html> 
  3. <head> 
  4. <title>无标题</title> 
  5. <script type="text/javascript" language="javascript">    
  6. function iFrameHeight() {    
  7.     var ifmdocument.getElementById("myifrm");    
  8.     var subWeb = document.frames ? document.frames["myifrm"].document : ifm.contentDocument;    
  9.     if(ifm != null && subWeb != null) { 
  10.        ifm.height = subWeb.body.scrollHeight; 
  11.     }    
  12. }    
  13. </script> 
  14. </head> 
  15. <body style="background-color:#ccc;"> 
  16. <iframe id="myifrm" onload="iFrameHeight();" allowtransparency="true" src="ifrm.html" scrolling="no" style="border:none;" frameborder="no"></iframe> 
  17. </body> 
  18. </html> 

 

注意:这里在chrome里,通过file://访问发现不行,但是http://可以,不知道何故。

 

在onload里处理有个问题,就是无法应对ifrm页面里内容变动引起高度变化,简单说,比如tab页签,2个tab页高度不一样,切换时就有问题了。

在口碑UED博客看到,通过定时执行一下的方法:

 

  
  
  1. window.setInterval("iFrameHeight()", 200); 

4.iframe页面与包含窗口的互通信 

5.连带父子页面刷新问题

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个可访问的中文网站。 Crisp是体验中国网络的一种全新而又令人兴奋的方式,使其变得简单易用,而且最重要的是 - 色彩鲜艳。在一次点击中,按照其色调对每个单词和字符进行着色,并赋予用户对页面内容和外观的控制 Crisp用户可以轻松定义自己的颜色,使用页面的文字边距进行播放,更好地了解每个页面的主题。它是免费的,开源的,支持简体和繁体字符,并与Google Docs和中文词典无缝集成。 基本功能 - 由他们的色调的颜色字符 - 调整单词边距和字体大小 - 从每个页面中提取词频 EXTRAS - 允许您自定义每个音色的颜色以符合您的喜好 - 极快的文字识别和页面修改 - 根据其字值为每个字符着色 - 允许在游乐场环境中查看内容,与页面分开 - 可自定义的页面选择器 - 只给你想要的部分上色 - 支持传统和简化字符 - 包括CEDICT的最新版本 - 最流行的汉英词典 - 很好地集成到Google文档环境中 如何&常见问题 颜色内容 页面加载完成后,只需轻按一下Crisp的浏览器图标,即可轻松操作页面的内容。该页面的可访问内容将立即根据预定义的音调代码进行分析和着色。 调整色调和字边距 通过右键单击Crisp的浏览器图标并选择“选项”即可访问“选项”页面。在选项页面中,用户可以很容易地改变每个音色的颜色。通过选项页面,也可以调整默认的单词边距,但通常不推荐。请注意,任何以前打开的选项卡应刷新,才能应用新的设置。 恢复默认设置 默认设置可以通过“选项”页面上的“默认设置”按钮轻松恢复。请注意,任何以前打开的选项卡应刷新,才能应用新的设置。 调整受影响的内容部分 通过选项页面,按下Crisp的浏览器图标也可以设置页面的哪些元素应该受到影响。默认的活动元素是标题,链接,文本和表格。对于不包含专用元素的页面,也可以激活“整页”分析或自由格式分析(处理div元素中的文本)。执行整页和自由格式分析有时会导致页面功能中断,因此默认情况下不会激活。请注意,任何以前打开的选项卡应刷新,才能应用新的设置。 检查玩具盒小部件中的文字 通过选择页面内的文本并右键单击,可以在页面右上角的特殊“玩具盒”中仅对页面的某些部分进行着色和分析。 提取Word频率并调整选项卡的Word-Margin 也可以通过右键单击Crisp的浏览器图标并按下“玩具盒”选项来访问玩具盒。在执行页面分析之后(通过按浏览器图标,如上所述),可以调整标签的文字边距和字体大小,并且可以通过玩具箱小部件查看最频繁的文字。词频部分中的单词可以通过点击一次轻松复制到剪贴板。 禁用颜色和其他功能 某些功能(如颜色本身和标记单词悬停)可从选项页面禁用。通过简单地取消选中相关的复选框,可以禁用这两个功能。另外,通过右击Crisp的图标浏览器并选择“切换颜色”,可以动态切换每个标签的颜色。 VERSIONS   V1.0.0.0 - 已知问题: (1)只能在主浏览器窗口的选项卡上分析页面。 (2)在分页加载时按浏览器图标可以破坏页面的行为。 (3)使用深度继承的表格单元显示结构的元素可能会遇到一些问题。这个问题只是为了避免降低性能水平而被处理。 (4)单词分词是一个学习过程,计划在以后的版本中进一步讨论。 (5)对象结构和名称间距需要在扩展的几个部分进行重构,以提高可读性和可伸缩性。 (6)iframe内容当前未被分析。 有助于 Crisp还处于早期阶段,目标是随着时间的推移而发展。对于任何丰富多彩的建议(双关语意),疯狂的想法或烦人的错误,你可能会偶然发现,请让我们知道在[email protected] 支持语言:English

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值