Frequently Asked Questions

What is the difference between 'Folder Expanded' and 'Folder Open'?

Joust ships with a 'Folder Open' image but does not use it (at least, by default). Many people have asked about this, believing that the folderopen icon should be used when a folder has been expanded.

Joust was designed to provide the user with a familiar 'look and feel' (after all, that is supposed to be one of the advantages of the GUI). So, we decided to model the behaviour of Joust on the Windows Explorer, Macintosh Finder and OS/2 File Viewer (from now on, I will refer to the Explorer but the Macintosh Finder and OS/2 File Viewer both behave in the same way).

The Explorer does not draw a folderopen icon when a section is expanded. It only draws a folderopen icon when a user has clicked on the folder (not the plus/minus icon) and its contents have been displayed in the right hand pane. i.e. The folderopen icon is used to indicate that the item has been selected, not that the section has been expanded (in the case of the Mac OS and OS/2, which do not have the two-pane interface, the folderopen icon is only displayed when the user has double-clicked on the folder and opened it in another window).

Here is a screen-shot of the Windows Explorer with several folders expanded but only one selected.

Joust does support the concept of a selected entry and will change the icon for a selected entry (provided the browser supports the image object). Look in the section on "Defining the Images" for more details.

Having said all that, Joust does allow the use a different image for an 'expanded' section. This is intended for building different types of outline interface but, if you really want to, you can use this to display the folderopen icon when a folder is expanded. Again, look in the section on "Defining the Images" for more details.

Back to Top

Can Joust be used without Frames?

No. There is a long list of technical reasons why the frameset is needed to make the whole thing work. The frameset is not there because I like frames (although I do think that frames are appropriate for this style of interface). If you, or your users, have an objection to all sites that use frames then you should not be considering Joust as your interface. Having said that, it is possible to use Joust in floating mode only on a non-framed site - with some limitations on the range of browsers it will work with. See the discussion on Floating Mode for more details.

There are DHTML-only scripts around now that will display a menu in a non-framed page. If you really need this feature then I suggest you use one of these. I do not plan to add this ability to Joust because I believe that cross-browser compatibility is more important (plus, as Netscape found when they tried it, I do not believe that an outline in a non-framed environment is good user interface design).

Back to Top

Why are all the menu items underlined?

When Joust draws the menu, all entries that link to another page are drawn as standard <A HREF=...> links. Most older browsers (Netscape 2 and 3, MSIE 3) will draw these with an underline (unless the user has turned this off). This is something that you cannot control on these browsers.

The introduction of Cascading Style Sheets in MSIE 3 and Netscape 4 gives you the ability to turn the underline on or off. The style sheet included in the top of menu.htm turns the underline off by setting the "text-decoration" attribute to "none".

If you have the showAllAsLinks option turned on then Joust will draw all entries with <A HREF=...> tags (even those that do not have a link to another page).

Back to Top

Why is my Joust outline slow?

There are a number of factors that can affect the time that it takes to initialise the menu. The most obvious is that your menu is very large. If this is the case, you should look at using Dynamic Menus to spread the load.

Another possibility is that your browser is a DHTML browser (Netscape 4 or MSIE 4 or better). Joust will make use of DHTML to draw the entire menu once and then just update it later by making things visible/invisible as appropriate. This has the advantage that it responds to user actions faster without the need to reload menu.htm. But it has the disadvantage that it has to do more work up front to prepare. Sometimes, when the outline gets big enough, this will also affect the time it takes to redraw after the user has clicked an expand/collapse image.

As before, you could address this problem by using Dynamic Menus, or you could turn off support for DHTML. You can do this by putting the following code in the first line of your initialise function:

theBrowser.hasDHTML = false;

This problem is most noticable with MSIE and Netscape 6. Netscape 4 can handle over 1000 entries before DHTML performance starts to be a problem. MSIE and Netscape 6 will slow noticably with only 80 entries. If you only want to turn off DHTML for MSIE and NS6 browsers then use the following code:

if (theBrowser.slowDHTML) {theBrowser.hasDHTML = false;}

Note: If you do this and you are loading Joust directly from disk instead of via a web server, you will encounter a bug in MSIE 4 that will result in JavaScript errors when you click on the menu more than once. The solution is to turn off autoScrolling or load the site via a web server.

Back to Top

Why is the scroll bar so long in Netscape 4?

See the discussion on Browser Specific Issues.

Back to Top

How do I set the TARGET of an entry?

Each entry has a target property that you can set, just like setting the TARGET in a link. See "Modifying Properties of an Existing Entry" in "Defining the Menu" for full details.

Back to Top

How do I remove the frame borders?

Frames were first introduced to HTML in Netscape 2. Microsoft followed in IE 3. However, frames were not added to the official HTML standard until version 4. This left a lot of time for each browser developer to define their own attributes and behaviours. All different from each other, and from the final specification.

Microsoft were the first to allow hidden frames using the FRAMEBORDER and FRAMESPACING attributes. Placed inside a FRAME tag, they determine whether the frame has a 3D border around it and how much space to allow between the frame and the next. To hide a border between two frames you have to make sure both frames have FRAMEBORDER="0" FRAMESPACING="0" attributes (if one frame does not have a border and the one next to it does, then a border is drawn). To simplify things, IE also allowed you to specify default values for thes attributes in the FRAMESET tag. So, to hide all frame borders, you can just put FRAMEBORDER="0" FRAMESPACING="0" attributes into the first FRAMESET tag.

Netscape chose a different approach, adding the BORDER attribute to the FRAMESET tag in version 3. So, to hide all frames, you would add BORDER="0" to the first FRAMESET tag.

All browsers that support frames (to my knowledge) support one of the above methods for hiding the frame borders (IE now supports the BORDER attribute as well). So, adding BORDER="0" FRAMEBORDER="0" FRAMESPACING="0" to the first FRAMESET tag should hide all borders on all browsers.

However (there had to be one) The HTML 4 specification is different again. It only defines the FRAMEBORDER attribute - and it's only valid in the FRAME tag. So, to make sure you get the desired effect in any pure HTML 4 browsers, you should include FRAMEBORDER="0" in every FRAME tag.

For more information on Frames and Framesets, see the links provided on the Before You Start page.

Back to Top

Do I have to link to your site?

No. People often read the license and think they have to provide a link. However, the license only requires that "all copyright notices and acknowledgements in the Joust code must be maintained at all times". The license preamble "requests" that publicly available web sites provide a link, but does not "require" it. If you do include a link, you should link to this URL:

http://www.ivanpeters.com/

Back to Top

Do I have to include your license page on my site?

This question has never been asked. But, I have noticed that many people do include the licence page (license.htm) on their sites so I decided it needs answering.

No, you do not need to include the license page on your site. In fact, I would suggest that you shouldn't include it in your site. People often include the page unmodified. This only confuses your visitors, giving the impression that your whole site somehow belongs to me.

The same applies to copyright notices on each page. I have seen sites where people have put "Copyright Alchemy Computing Limited" on the bottom of every page (Alchemy Computing used to hold the copyright. Now the same people might put "Copyright Ivan Peters"). This is wrong. I hold the copyright on the JavaScript code that makes up Joust, but copyright on the design and content of your site belongs to you.

Back to Top
The Joust Outliner