Forum Moderators: open
But, if you have to do them then here is a JS answer to the problem:
<script language="JavaScript">
if(self.parent.frames.length==0)
self.parent.location="index.html";
</script>
Put this code into every page and it will detect if the "frame" pages are not yet loaded and load them. "index.html" should be changed to be the base frame page.
It is not a good solution, and isn't liked by Yahoo these days.....but, it is a quick fix if you insist on using frames.
However, if at all possible it is better to remove the frames entirely and use server-side includes (SSI, PHP...) instead for the menu and header sections. Keep trying to convince your client, you might win one day! :)
This is simpler and won't break the back button.
The intrinsic problem with frames is that they have been implemented badly by the designers of HTML.
You might consider using { position:fixed } possibly with IFrames (if this content need not be indexed). This will work fine in Opera and Firefox and maybe IE 7.
Kaled.