zoukankan      html  css  js  c++  java
  • 解决IE下iframe默认有白色背景的bug

    又是一个IE莫名其妙的bug:做了一个弹出层,层里面是一张透明图片,IE下的iframe默认会有一个白色的背景,所以当iframe的外围背景并不是白色的时候,这个iframe就会显得非常的“与众不同”。

    这个背景是iframe本身的,不是iframe内的html元素的,所以,只对iframe进行相关设置就能去掉这个背景。

    iframe有一个并不常用的属性:allowTransparency,意思是是否允许透明——蛋疼的是IE下好像默认是false,很多大网站的iframe上也没有加上这一条,所以这讨厌的白色背景经常会看到。

    现在对iframe如下设置:<iframe allowTransparency="true" />(观影团这个用过,比较管事)

    现在允许透明了,那是不是就搞定了呢?为了保险起见,还是手动设置一下iframe的背景透明吧。CSS如下:

    iframe{background: transparent;}

    至此,问题就已经解决了。但还有一些特殊情况:有时候iframe不是HTML中本身写的,是用Javascript加载进来的,这时虽然以上的CSS可以生效,但却没法给iframe本身加上allowTransparency属性了,这时候怎么办呢?

    迫不得已,只有用JS了。

    window.onload = function(){
      var ifra=document.getElementsByTagName('IFRAME');
        for(var i=0,l=ifra.length;i<l;i++) {
          ifra[i].setAttribute('allowTransparency','true');
        }
      }

    用javascript中的setAttribute方法来设置iframe的allowTransparency,以上代码没什么说的,但请放入只针对IE的注释中,因为这代码对firefox,chrome之流是不必要的。

  • 相关阅读:
    《MySQL入门很简单》练习7.4
    《MySQL入门很简单》练习6.9
    《MySQL入门很简单》练习6.6
    《MySQL入门很简单》练习6.5
    "mysql"不是内部或外部命令,也不是可运行的程序或批处理文件
    TControl与Windows消息
    TObject与消息分发
    长串
    使用TSplitter控件调整其他控件大小简便方法
    Cocos2d-x缓存机制(一)
  • 原文地址:https://www.cnblogs.com/jiangtuzi/p/3272030.html
Copyright © 2011-2022 走看看