I am seeing a problem in IE7 and Firefox that is hard to reproduce. I have not been able to understand what is going on, and I am interested if anyone else has experienced the same kind of problem, or has any suggestions for a solution or how I should proceed with further diagnosis. If this post seems like an essay, I apologise.
I am a developer working on a commercial web application being developed in classic ASP by a small company. Both in development and deployed it runs on IIS 6 (Server System 2003), in an intranet (sometimes through a VPN). I think all the dev and user clients are Win XP.
The app has an intro page, that is a plain .htm, which links to the start page in a directory 'cgi-bin'. All pages in this directory are .asp. This start page is a frameset page, with three frames. The upper and lower 'menu' frames are set with fixed size; the middle 'main' one has all the remaining space ('*').
On IE7, the upper and lower 'menu' frames are blank. Using the Microsoft DevToolBar shows that their bodies are empty (the heads are populated as expected). Refeshing these frames causes them to display. This problem did not occur in IE6, and appears to occur indeterminately in IE7. On the other hand, in Firefox 1.5 the lower frame is consistently blank (reload does not cure it). Opera 9.1 displays all frames consistently.
One factor appears to be our recent change to XHTML transitional throughout the app. A correct XML declaration, followed by a correct DTD, has been put on every page. Using frameset for the frameset page does not help, but removing the XML and DOCTYPE declarations altogether seems to make the problem go away in IE7 (but not in Firefox).
All the pages use some Javascript, but there doesn't appear (to me) to be anything that explains what is going on, especially in the light of the (apparent) inconsistentcy of symptoms.
Here is the essential code of the frameset page:
< xml version="1.0" encoding="utf-8" >
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Censored</title>
<link rel="stylesheet" href="../Styles/Styles_XP.css" media="all" type="text/css" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<script type="text/javascript" src="../javascript/JS_Code_Lib.js"></script>
<script type="text/javascript" src="../javascript/Index.js"></script>
</head>
<frameset rows="51,*,28" frameborder="0" border="0" framespacing="0">
<frame name="Frame_Top_Menu" src="Test_Admin_Top_Menu_1.htm" scrolling="no" noresize="noresize" frameborder="0" framespacing="0"></frame>
<frame name="Main" src="../cgi-bin/Logon.asp " scrolling="yes" frameborder="0" framespacing="0"></frame>
<frame name="Frame_Bottom_Menu" src="Test_Admin_Bottom_Menu_1.htm" noresize="noresize" scrolling="no" frameborder="0" framespacing="0"></frame>
<noframes>
<body>
<p>This page uses frames, but your browser doesn't support them.</p>
</body>
</noframes>
</frameset>
</html>
This one page has the frameset DTD, all the others have the transitional DTD (all XHTML 1.0).
I'm not going to post reams of code here. I'd be happy to post more code, or answer any questions, on request.
If anyone can help me, I'd be extremely grateful.