Sothink DHTMLMenu, Version 7

Problems & Solutions

NOTE: On this page we're using "Accordion Panels"to provide information. We'd appreciate your feedback on this technique.

Based on posts to the Sothink DHTMLMenu support forum and e-mails we receive, here are suggested solutions to some common problems experienced by users. Click on an item for more information.

A program is never perfect or free of bugs, but most software tends to improve with each newer version. As a program evolves, it generally becomes easier to use and has fewer bugs. If you're not using the latest version of the program, your menus may not work correctly with the latest browsers. Also, it may be difficult to get help with older program versions. We use and recommend Version 7.x. The upgrade cost is very reasonable ($15.00 US from Version 4 and higher and $30.00 US from Version 3). If you don't want to upgrade to Version 7x, at least upgrade to Version 6.6.

You should be using the latest version of DHTMLMenu, and in no event should you use a version older than Version 6.6. Be sure to upload the correct version resources to your server. We have seen cases where people were using a current version of DHTMLMenu but still loading stm31.js (current versions of the program use stmenu.js instead of stm31.js). Also, if you are still including menu code in your pages, instead of using a JavaScript include file as we recommend, be sure to update the menu code in each of your pages whenever you update your menu(s).

You can easily check the version number by viewing the source code for the stmenu.js and menu definition script that you uploaded to the server. The first line of stmenu.js shows the version number, like this:

/*=======Ver: 7.3.70330========*/

and the first line of the menu definition script shows the version number, like this:

stm_bm(["menu2984",730,"","blank.gif"

If you have your HTML pages and menu resource files in a single subdirectory/folder on your server, it is not necessary to specify a Web Path for menu resource files (scripts and images). However, if your site uses more than a single subdirectory/folder, you must specify a Web Path, and it should be an absolute path. For example, if you place your menu resource files in a subdirectory/folder named menu, you should specify a script and image path similar to the following in Global Settings - Web Path:

http://yourdomain.com/menu/

Also, the links in your HTML pages to stmenu.js and your menu definition script should be similar to the following:

<script type="text/javascript" language="JavaScript1.2" src="http://yourdomain.com/menu/stmenu.js"></script>

<script type="text/javascript" language="JavaScript1.2" src="http://yourdomain.com/menu/menu.js"></script>

We have added a page to this site which covers Web Paths in more detail. You can view it here.

Every HTML or XHTML document should begin with a DOCTYPE (document type declaration). A missing or incorrect DOCTYPE can cause a browser to revert to "quirks" mode, and it will try to parse the page in a backward-compatible fashion. The browser will revert to a proprietary, browser-specific DOM (Document Object Model), and JavaScripts may not function as intended. There is an explanation of correct document type declarations on the Web Design Tips & Tricks site.

There may be a conflict between your stylesheet and your menu. Try "commenting out" your stylesheet or stylesheet link. If that eliminates the problem with your menu, it will take some detective work to determine which stylesheet specification is causing the problem. A stylesheet such as "reset.css" that sets table elements to zero will cause problems with a menu because Sothink DHTMLMenu uses tables internally.

There may be a conflict between your menu and other JavaScripts on the page. Try "commenting out" other JavaScripts or JavaScript links. Once you determine which JavaScript is causing the problem, you can edit or delete it.

Don't use frames. Way back in the last century (May, 1996), Jakob Nielsen listed using frames as #1 in his "Original Top Ten Mistakes in Web Design". Even the old maxim, "Use frames only if they fill a purpose that can't be addressed adequately by other methods," is no longer applicable. If you feel you must have the look and feel of frames, you can simulate them using CSS, and you can add a DHTMLMenu to the pages without worrying about whether the menu will work across frames. You can see an example here.

Don't use FrontPage. The code generated by FrontPage, especially older versions of the program, can be a nightmare. If you use FrontPage and things on your site don't work as expected, FrontPage may be the culprit. Fortunately, Microsoft has replaced FrontPage with Expression Web which is supposed to be a decent design tool.

 

 

 


Copyright © 2007, William S. Pitt