Frameset + cols IE10

Ziggiej picture Ziggiej · Sep 3, 2012 · Viewed 7.8k times · Source

I was testing some scripts in IE10, seems that the browser has problems in setting attribute cols.

Example:

parent.middle.document.getElementById("middle_frames").cols = "0,*"

This works perfect for SAF/Chrome/FF/IE7/IE8/IE9, but in IE10 it doesn't work.

Anyone with some help?


I can't show my problem in my project, but I made a dummy script to show you the problem. Make 3 files (these below) and run them in IE10 and click the button "change cols". Works perfect for every browser except IE10. In my example you see I used a doctype, tried also without a doctype, same problem.

frameset_main.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>Framesets</title>
    </head>
    <frameset id="framesets" cols="200,*" frameborder="0" border="0" framespacing="0">
        <frame src="frame1.html" name="frame1" id="frame1" scrolling="vertical" noresize="noresize">
        <frame src="frame2.html" name="frame2" id="frame2" scrolling="vertical" noresize="noresize">
    </frameset>
</html>

frame1.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>Frame 1</title>
    </head>
    <body style="background-color: green;">
    </body>
</html>

frame2.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>Frame 2</title>
        <!-- ONPAGE JAVASCRIPT -->  
        <script type="text/javascript">
        function dothis(){
            parent.document.getElementById("framesets").cols = "500,*";         
        }       
        </script>
    </head>
    <body style="background-color: red;">
    <div id="main_container" class="cls_main_container">
        <input type="button" id="btn_do_this" onclick="dothis();" value="change cols" />
    </div>
    </body>
</html>

Answer

Michael Hansen picture Michael Hansen · Apr 9, 2013

For me the following seems to work (Its somewhat like Raads fix)

parent.document.getElementById("framesets").cols="0,24%,*";
parent.document.getElementById("framesets").rows=parent.document.getElementById("framesets").rows;  //IE10 bug fix