Hiermenus Go Forth, X - DHTML Lab | 5
Hiermenus Go Forth, X:
Version 4.0.3 - The Complete Script (Full-Window)
Problems reported with 4.0.2 and fixed in 4.0.3
In IE5, poor user page HTML could generate an Operation Aborted error. See our discussion of this error in Column 45. Creating the menus after the page has loaded, like in Version 3, allows IE5 to resolve any open HTML tags, and menus are always created in the document body, regardless of the placement of the SCRIPT tag.
In IE, the inclusion of some third-party editor-originating effects could conflict with the HM creation. An example of this would be the use of Front Page shared borders, an inelegant and cumbersome piece of code. However, since many authors are using third-party editors, we had to address this. The problem is fixed with the after page load menu creation.
Thanks to Ben Edwards
In NS4, a Shift-Reload operation during menu creation could cause NS4 to freeze. Creating the menus after the page has loaded, like in Version 3, by using the more stable new Layer() constructor instead of the <LAYER> tag solves the problem. The side-effect is, of course, that menu creation speed reverts back to that of Version 3.
In NS6, the display of in-page permanent elements was occasionally not refreshed during menu creation. This caused parts of the page to be blank and content cut off. Forcing a refresh by moving the browser window, or minimizing-restoring was a solution that worked but not easily communicated to the average user. Allowing the page to display first and creating the menus after the page has loaded solves the problem.
In IE5 for Macintosh, menu size and styling could be lost if large and complex menu trees were created. Even though internally, IE had created the elements to spec, the display could be different. Creating the menus after the page has loaded, seems to help IE5Mac retain and display the property values it has set and display has been improved significantly.
Thanks to Joe R. Jah
NS4 menu creation time can be improved by using the new HM_CreateTopOnly parameter. If set to true, HM_CreateTopOnly causes only top-level menus to be created. Child menus are then created and displayed only when needed, when the user mouses over a top-level menu item which has a child menu. This parameter is available to all browsers, even though time-improvement is more dramatic with NS4.
In IE5 and NS6, item display seemed to ignore the HM_FontItalic setting. The result was that item display could not be italicized programmatically. This is solved by setting the item's fontStyle property after the font property, instead of before.
Thanks to David Magnus Nome
In all browsers, top-level menus could not be absolutely positioned to a 0 position, either vertically or horizontally. The Boolean check for a left or top setting encountered 0, that is, false, and assumed no position had been set. The left and top setting checks are no longer Boolean but compared to null.
Thanks to Michael Gaensler
In IE4, IE5 and NS6, font property values assigned to the DIV element in a user stylesheet took precedence over font properties set for menu items. HM assigned font properties to the menu element. The enclosed item elements (DIVs) had no specific font settings, and if a stylesheet rule existed it, correctly, took precedence over the otherwise default inheritance of values from the menu element. Font property values are now directly assigned to every item element.
Thanks to Stephen Turtle
In IE5, the "more" image could display with a height other than that intended by the author. Image height is not set by authors, only image width, using the HM_ImageSize parameter. If HM_ImageSize does not correspond to the actual width of the image, the image is scaled to fit the author-specified width. It is assumed that the height will be scaled proportionally, as well. IE5 did not scale the image height, but rather hard-coded a HEIGHT attribute value equal to the true height of the image. This attribute is now removed by HM, allowing true image height scaling.
Thanks to Jeroen Teunissen and John Fournier
(are you ready for this?)
In all browsers, if a top-level menu was not created because the associated array was missing, and the user opened an existing menu tree and moused out of the existing menu directly onto the element that would otherwise cause the non-existent menu to display and HM_ClickKill was false and HM_TopSecondsVisible was set to more than .1, an error would be generated.
Ouch! Talk about obscure!
Thanks to Mark Franz
On the next page, the sample page included in the download.
Produced by Peter Belesis andAll Rights Reserved. Legal Notices.
Created: Jan 23, 2001
Revised: Jan 31, 2001