IE10下 iframe 的 收缩设置不兼容问题

来源:互联网 发布:windows系统正版验证 编辑:程序博客网 时间:2024/05/20 15:36

    项目中遇到这样的问题,在一个页面中,通过<frameset>引用了两个<frame>。

   

<frameset rows="513*" cols="230,*" frameborder="1" border="1" bordercolor="#006699" id="fst">    <frame src="${XXXX}" name="leftFrame" id="leftFrame" title="leftFrame" />    <frame src="${XXXX}" name="rightFrame" id="rightFrame" title="rightFrame" /></frameset>


 

    其中,frame的leftFrame页面会转向到leftFrame.jsp页面中,页面中有一个按钮,点击后,期望可以收缩<frameset>中的“leftFrame”。

    一般的方法是:

   

<script type="text/javascript" language="javascript">function buttonClick(){        parent.document.getElementById("fst").cols = "0,100%,*";    }</script>

 

    在IE7和FF下,此种方式能够实现对frame的收缩,但在IE10下,不能实现frame的收缩,据查,此为IE10的bug。(IE8和IE9我尝试也不能实现Frame的收缩,但网上对此没有解释。)

    为了解决此Bug,通过查找,有两种解决办法,使用后,FF和IE7至IE10均能正常实现frame的收缩功能。

方法一:

   

<script type="text/javascript" language="javascript">function buttonClick(){        parent.document.getElementById("fst").removeAttribute("cols");        parent.document.getElementById("fst").setAttribute("rows", "0,*");        parent.document.getElementById("fst").removeAttribute("rows");        parent.document.getElementById("fst").setAttribute("cols", "0,*");    }</script>

方法二:

   

<script type="text/javascript" language="javascript">function buttonClick(){parent.document.getElementById("fst").cols = "0,100%,*"; //parent.document.getElementById("fst").cols = "0,*"效果一样的parent.document.getElementById("fst").rows=parent.document.getElementById("fst").rows; //IE10 bug fix}</script>

    这样就屏蔽了IE10<frameset>frame设置的BUG。以此类推,可以正常设置frame的大小和frame的展开实现。

    详情参见:http://stackoverflow.com/questions/12249268/frameset-cols-ie10

 

 

原创粉丝点击