|
home / bulletins / 17
HierMenus 6.0.3: Release Notes
D.M Ragle, June 12, 2006
A single--but potentially lethal, depending on your page layout--Internet
Explorer problem is addressed with this HierMenus maintenance release. It is
recommended that current users upgrade if they are--or expect that they
may--encounter this specific issue.
As a reminder, though our release articles can be appreciated by and may
be useful to all DHTML developers and HierMenus fans, the HierMenus script itself is
a licensed product and its use on your site(s) requires a paid license agreement. Contact
Barry Pullen
or call him at (203) 662-2868 for further information (be sure to let him
know how you plan to use HierMenus and tell him a bit about your organization, as well).
Body Sizes and Standard Pages
A HierMenus user recently pointed out to us this oddity.
In Internet Explorer, if you provide a standard document type
(forcing IE into its "Standards" mode, see this
explanation for more details), a body size (say,
96%), and have scrollable menus within which the
scrollbar actually does appear (i.e., the browser window is
small enough such that the menus will actually appear), then
the menus, when they next appear, will hang the browser. The reason?
A runaway loop based on the browser's resize handler. In brief:
with this specific collection of parameters on a page, any
hiding and showing of an Internet Explorer element (setting the
object's visibility to "visible" or "hidden") automatically
triggers a call to the resize handler of the page. This shouldn't
happen with absolutely positioned objects; since hiding or showing
an absolutely positioned object doesn't effect the sizing of the
browser window. Nonetheless, this is the case.
In our previous release of HierMenus
we documented another odd bug having to do with the display of largish
menus in certain screen resolutions. To fix that issue, we temporarily
hide the menu (assuming it's already visible) and then redisplay it
each time the menu's scroll position is checked. Since this scrollcheck
is applied each time a menu is repositioned, and since the menus are
all automatically repositioned as the result of a window resize, we
now inadvertantly trigger the loop described above: The window resizes,
which repositions menus, which triggers scroll checks for the menu,
which hides/redisplays the menu, which triggers a window resize...
To fix the problem, we're reintroducing an old trick in the DOM code
only; specifically, we're checking the existing size of the browser
window and applying our repositioning logic to existing menus only
if the new browser window size differs from the old browser window
size. In this way, our initial reposition of the menus will
indeed trigger an additional call to the onresize handler; but
the second call to our onresize handler will be silently ignored
by HM (since the browser window's size did not actually change), breaking
the cycle and allowing the browser (and HM) to continue.
UponDisplay / UponHide Fixed in ConvertArrays
If you're still using v4/5 array style configuration files (and we
really hope you aren't), then you may have noticed that the UponDisplay
and UponHide parameters were not properly translated to their
HM6 equivalents. If this did happen to you then you've probably no
doubt corrected the problem on your own by now; but just in case you
haven't (and for new users) we've corrected this goof with this release.
Conclusion
The above two changes are the only changes made to HierMenus v6.0.3. Again,
if you suspect these two problems may occur in your particular implementation,
it is recommended that you apply the upgrade, which affects only the
HM_ScriptDOM.js and HM_ConvertArrays.js.

|