Search code examples
htmlcssinternet-explorernestedframeset

Second Frameset not appearing in IE8


I am working on a facelift for a legacy site that has to function in IE5 and up. I have it working in everything but IE8. It uses framesets and that is not something I can change unfortunately.

For some reason, in IE8 on Windows 7 and XP, the second frameset in a nested frameset group is not showing up. It is also a nested frameset.

I have tried viewing this in compatibility mode and without compatibility mode. It is also running on a server, not just a file. My head doesn't use the x-frame-options call in it because the site resides on a non-networked server, so there is no way it can be clickjacked.

Below is my code:

frameset rows="120, *" border="0">
    <frameset cols="100%" border="0">
        <frame src="masthead.html" style="width: 100%; display:" scrolling="no" noresize></frame>
    </frameset>

    <frameset cols="240, 640*" border="0">
        <frame src="menu.html" scrolling="no" noresize></frame>
        <frameset rows="*" border="0">
            <frame src="cathome.html" name="main" scrolling="auto" noresize></frame>
        </frameset>
    </frameset>
</frameset>

It resides in an HTML page that has html, head, title and body tags as well.

The top frameset appears fine, there is just no bottom one. I can also see this exact code when I view source, so it is not removing anything when rendering. Thanks -


Solution

  • The frameset is invalid, and as known, IE is not the best browser to show invalid HTML. Remove the extra framesets:

    <frameset rows="120, *" border="0">
        <frame src="masthead.html" scrolling="no" noresize></frame>
        <frameset cols="240, 640*" border="0">
            <frame src="menu.html" scrolling="no" noresize></frame>
            <frame src="cathome.html" name="main" scrolling="auto" noresize></frame>
        </frameset>
    </frameset>