eBook authors eBook Software - create and publish your own ebooks
Create your own eBooks
 
   
EBookApprentice.com
Learn How To Create, Publish & Market E-Books
 
   
EBookCompiler.com
E-Book Creation Software
 
   
EBookPower.com
Add sophisticated multimedia to your E-Books
 
   
CoverFactory.com
Create E-Book covers in minutes
 
 
  EBookSubmit.com
E-Book Marketing & Promotion made easy
 
  EBookJungle.com
Search engine for E-Books
 
  EBookInterviews.com
Interviews with eBook authors
 
  EBookEnhance.com
Tools for building better eBooks
 
 
 
Archived Message:

Handling Frames Correctly


 
EBookCompiler
1. As you know frames contain 2 sets of HTML pages. 
(i) Framesets that specify when the frames are placed and what is initially in them.  These are pages that contain the <FRAMESET...> </FRAMESET> tags, and list the initial contents of each frame in the <FRAME...> tags
(ii) The contents of each frame, the initial contents being given by the SRC= parameter for the FRAME tag in (i)

2. There are two very general issues with frames on web sites

ISSUE #A:  If you go to a search engine (like Google or Altavista or something) amd search, it can potentially find pages of both type (i) and (ii).  If you click on a link to a page of type (i) then the frameset gets loaded and everything is as you might expect.  However if you click on a link to a page of type (ii), then the browser only loads that particular frame, and the other framed elements are missing.

ISSUE #B: Additionally a problem with frames, is that if you go to a page of type (i), then URL is the URL of the frameset and doesn't change even if individual frames are are updated.    This can cause a few issues, for example bookmarking framed sites.  For example, try:
- Go to a web site frame site that uses frames
- Make a note of the URL
- Navigate around the site to update individual frames.   You should notice the URL doesn't change (some sites attempt special code to handle this with varying degrees of succss, but the vast majority don't). 
- If you place a bookmark after updating the frames content, close the browser, and return to the bookmark.  it will go to the initial frame content (where you started on the site), rather than reloading where the individual frames are

Both these problems are essentially design problems of the HTML FRAME tag, which is one of the reasons, why I personally am not a big fan of frames, but that's another story.

3. The issues with frames on **web sites** in 2 are difficult to completely solve, although some people try using JavaScripts, etc.

Essentially the same issues can arise in an e-book made using Activ E-Book Compiler.  However it in an e-book it is possible to solve using some extra work

There are 4 areas to address in an e-book

(i)  Solving the ebook search issue.

If you do a niaive attempt at frames in an e-book and enabling searching, when you search, you will see the same problem as issue #2A

This can be solved:
- Make an extra frameset page for each possible combination of frame contents that can potentially appear in the search results
- Add title, and optionally description + keywords in the Files tab in the compiler for the frameset pages.  If you want to add a searchable text in the frameset, a good place would be using NOFRAMES tag.
- Turn ON the searchable attribute for each frameset page in the Files tab
- Turn OFF the searchable attribute for each individual frame content page in the Files tab.

(ii) Table Of Contents

Essentially the same issue as #2A

This would apply to System Generated TOC, and the Popup list on the Contents button if enabled.   Essentially the same solution as  3 (i) - create extra frameset pages,  except we are now talking about the Contents attribute.

In other words:
- Make an extra frameset page for each possible combination of frame contents that can potentially appear in these places
- Add title, and optionally description + keywords in the Files tab in the compiler for the frameset pages
- Turn ON the Contents attribute for each frameset page in the Files tab
- Turn OFF the Contents attribute for each individual frame content page in the Files tab.

If you use "My Own Page" for TOC, then what you want to do is use TARGET=_top and link to the framesets rather than updating individual frames.   More on this in the next part

(iii) Navigation, Bookmarks, Next+Previous

This is similar to issue #2B

The current URL is the URL of the frameset, and doesn't contain any info on what is loaded into each frame

For Navigation, it would be best to link use TARGET=_top to a new frameset and update the frameset + URL this way.  If you don't do this, it would cause a knock on problem forBookmarks + Next/Previous

Bookmarks.  The simple bookmark script I have published, I have said "won't work with frames"...  actually it will if you make sure the frameset is updated when you load a new page.  Use this TARGET=_top and linking to new framesets as you navigate around would do that.

Next/Previous.   Same problem again, plus 2A mixed in. 
- if you don't update the frameset as you navigate around (by TARGET=_top and linking to framesets) then Next/Previous will think you are on the URL on the initial frameset.  This is like 2A.  Solution is to use TARGET=_top and link to framesets
- Next/Previous determines what is next/previous by looking at the current URL and looking at which files have the contents attribute.  So to make sure they lead to the right page, follow the instructions under 3(ii)

4. ALTERNATIVE SOLUTIONS

 If you must use frames then you need to use the somewhat convoluted solution above (it's not really hard, just extra work) to get a total solution.

There are two main reasons why people use frames, and for many people an easier solution can come from using a different approach to these reasons

Reason #1
- People use frames to provide a navigation bar or menu on each page

Alternative solution:
- Use tables to layout your page
- In the table cell that is analagous to your frame navigation bar, put in links to each page
either using cut and paste,
or using the Include HTML Fragment Include Activ Variable and PreProcessor..  You can make a separate file containing the code for the menu, and then include it with one line
or make a separate HTML file containing just the menu links (don't forget to use TARGET=_top) and use IFRAME to include it.  Do not forget to make sure the source file for the iframe has the Contents and Searchable attributes unchecked or otherwise you re-introduce problem #2A.

Reason #2
- People use frames to grab content of a web site (like banner code) and show it along side e-book content.  Use IFRAME to do this instead of making the whole page a frameset.  Again do not forget to make sure the source file for the iframe has the Contents and Searchable attributes unchecked or otherwise you re-introduce problem #2A.


A note of IFRAMEs

On web sites many people advise you not to use or depend on IFRAMES.  The reason is IFRAMEs work only on some browsers: namely IE (i think since version 3 but am not certain, it definitely is in version 4 and later), and Netscape 6 and later.

In e-books, this issue doesn't arise, IFRAMEs will work on all systems that Activ E-Book Compiler and the e-books run on.


Posted on: 1:20 pm on March 25, 2002

Go to Active Discussion Thread

Participate in Current/New Discussions

List All Archived Forums



Copyright © 2000-2015, Answers 2000 Limited.

With any business, it is up to the individual owner of said business to ensure the success of the business. You may make more or less than any sample figures or results that might be quoted on our web sites or other publications. All business involves risk, and many businesses do not succeed. Further, Answers 2000 Limited does NOT represent that any particular individual or business is typical, or that any results or experiences achieved by any particular individual/business is necessarily typical.

Disclosure: Our company's websites' content (including this website's content) includes advertisements for our own company's websites, products, and services, and for other organization's websites, products, and services. In the case of links to other organization's websites, our company may receive a payment, (1) if you purchase products or services, or (2) if you sign-up for third party offers, after following links from this website. Unless specifically otherwise stated, information about other organization's products and services, is based on information provided by that organization, the product/service vendor, and/or publicly available information - and should not be taken to mean that we have used the product/service in question. Additionally, our company's websites contain some adverts which we are paid to display, but whose content is not selected by us, such as Google AdSense ads. For more detailed information, please see Advertising/Endorsements Disclosures

Our sites use cookies, some of which may already be set on your computer. Use of our site constitutes consent for this. For details, please see Privacy.

Contact Us    About and Terms Of Use    Privacy    Advertising/Endorsements Disclosures