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...
== 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