About this web-site ~ some notes on the design
I've been doing a major revision with my web-site to use 'frames'. However, all my pages should be fully compatible with browsers that do not support frames. It's not easy to fully test this so let me know if you are having any particular problems with your browser.
Frames allow the screen to be divided into sections and I've done this (on the majority of my pages) so that there is a header, a main frame, and a footer.
The main content is by and large the same as it was pre-frames, but the point is to leave the header, which contains the page title, and (more importantly) the footer, which contains new improved navigation options, fixed on screen, while the user can (if necessary) scroll through the main content.
Many of the pages that have been 'framed' are menus, and, depending on the screen size, these probably wouldn't have needed scrolling anyway. Even so, with these pages (especially with a screen using my preferred 1024 x 768 pixels) the old <Back hyperlink did tend to appear at various points way up the screen. In contrast, on framed pages there should now be various navigation options always fixed at the bottom of the screen. - By the way, an example page that does show scrolling is ~/contact/latest.htm>
Notes for web-developers thinking of using frames:
Frames can be quite tricky. For a start you need (e.g.) four web pages were previously there was one. In my case there is a requirement for a separate page for the header, one for the footer, and one for the main page, then a controlling page for those three.
I use a standard naming convention, so the controlling pages have the same URL as original page references (e.g. ~/index.htm>), with the others having similar names but suffixes _h, _m, _f (e.g. . ~/index_f.htm>).
Preventing 'orphan' pages: The suffixed pages are web-pages in their own right, so there is nothing to stop a search engine returning one of my header pages, which would have no links to anything on it and would be a problem if it were not for some special correcting code. E.g. in my home header page (~/home_h.htm) I have the code...
if (top == self) self.location.href = "home.htm";
I've left this code off the _f pages (and sometimes also _m pages) where these contain useful links to other pages on my site, so these can be viewed in isolation.
Supporting 'no-frames' browers: There is also (kind of) a fifth page that needs to be written for browsers that don't support frames. Rather than simply produce a message that tells the user their browser's no use, I've included a full 'no frames' version, with _h, _m and _f stuck together for the benefit of browsers (and search engines) that don't support frames. This is all put in the control page.
Search Engines and Frames: Another advantage with including a 'no frames' version is that it gives non frame compatible search engines something to get their teeth into (otherwise the control page only contains pointers to other files. With no relevant text the control page will never appear as a relevant result with many search engines. As suggested above, for 'no frames' browsers, but also for no frames search engines, my 'no frames' page provides a single page with the same total content as the frames version.
Other 'problems' with frames: Another problem with frames is navigating to a bookmark. The only way I can see that it's possible to navigate, for example, to a bookmarked point in one of my main pages within a frameset, is to create another version of the control page. This has been done with the latest contact details, which you can see if you navigate back from, say, the overseas details page>. - Check out the source code if you're interested. Obviously, it's more overhead to maintain.
A good web-site page about Frames... http://searchenginewatch.com/webmasters/frames.html