| Introduction to HTML 9: Frames | ||||||||||||||||
What Are Frames?Frames are a little different than anything you've done in html in that you are not writing a page in the traditional sense. What you are creating is a template where more than one page can sit. Here's an example using TABLE commands:
Above is a simple table. This table is obviously sitting on the page you are looking at right now (HTML_9.html). Frames are similar to tables in that they split the browser page into cells. In tables, the information that appears in the cells are typed in the source code on the same page. In frames, the information that appears in the cells are actually other pages. Frame commands allow you to display more than one page at the same time,
in the same browser screen. To change the above html page with a table
to an html page with frames there would be THREE pages involved:
The frames page template that breaks up the page and "Page_A.html",
"Page_B.html". The frame commands that would create a page like the
example above would look like this:
Look over the program above and notice:
Basic Frame Commands
Adding Rows To ColumnsHere's the browser screen configuration I'm going to make. The table below is a pretty good representation, but not quite exact to scale. It's just for demonstration purposes.
Here's the FRAMES program I'll use to do it:
What is Happening Here?Remember that frames read left to right. I told the computer I wanted FRAMES by using the FRAMESET command. I then broke up the page vertically just as before.Here's where the rows come in. I added a new FRAMESET command denoting ROWS. I asked for 75%, 25% breaking up the first column into two rows. I then offered two SOURCES for the two sections of the first column. The first frame to offer a source is always the top one. I then put in a /FRAMESET to denote close of the first column. Note I did another FRAMESET command again denoting ROWS, but this time I set the rows at 33%, 33%, 33%. Then I denoted SOURCES for those three rows in column two. I then added a /FRAMESET to end those rows and another /FRAMESET still to end the whole deal. Please note that I am going to show 5 different pages on the same browser screen. To see what the code above looks like click here. Naming Cells and Using TargetsOkay, so now we know how to break up the screen through FRAMESET percentage commands. Now the question is how to control page changes (hypertext links) in your frames. There are three basic methods of changing data within cells:
Here's how you do all three!1. Click on a link in a frame -- just that frame changes pages.
2. Click on a link in a frame -- another frame on the screen receives the information.
Let's say I'm doing a very simple frame page with only three frame cells. It'll look something like this:
In order for me to ask the computer to send data to another frame cell, I have to make a point of naming each of the cells. Name them whatever you want, but it's my suggestion to keep it simple -- like capital letters. Here's what the FRAMESET command will look like, with NAMES, to create the illustration above: <HTML> Now that you have the cells named, you can make any hypertext link inside of them targeted. Basically, you're going to add a TARGET command to the usual <A HREF>. Let's say this example hypertext link is in cell_a above: <A HREF="http://www.Google.com" TARGET="C"> You can guess what will happen. When you click on the link, cell_a will remain the same and cell_c will receive the information. You would commonly see this used in building an index in the left column or left cell of a page to click on an item and have it appear on the right side of the page. 3. Leaving a Frames Page CompletelySo now you can send information from any cell to any cell. The problem is you're still on the frames page -- and some of the larger pages are squished. Say you want to have someone click on a frame and have the link to pop up as its own page, in a full browser window. Well, you have to tell it to do that. Remember! Default is to have the information stay in the same frame. You need to TARGET the hypertext link to be its own page. Easy enough. Just follow the format above but make the TARGET, "_top." Note the underline before the word "top." It looks like this: <A HREF="http://www.Google.com" TARGET="_top"> Click Here for examples of the NAME and TARGET commands above. Encountering Non-Frame-Ready BrowsersMost browser today accept frames, but some still don't, text-only browsers for example. The "browserly-challenged" will get an error code if they attempt to log into a page with frames. Either that or they will receive a blank page. There are a couple of ways around it.
Using the NOFRAME command is simple. You write a basic frame page like any of the three above -- but -- immediately following the first FRAMESET command you put in a <NOFRAME> command and write a message to the user. Like so... <HTML> What's Happening Here:The person who can't see frames gets the message and the person who can
read frames will get the frame page. You could also just put the text page
code in the <NOFRAME> tag rather than a message, that way, the user
would see the page and be none the wiser. For more Advanced Frame Commands, click here.
|
||||||||||||||||
| |