Recent Questions On Demand Tree Menu
Q: Sorry to bother you again, but we've done everything suggested in your fix regarding flash obscuring the multiple drop down menu, but we're still having the same problem in Firefox.
We've - set the parameter in the data file to - var dmObjectsCheck=1;
We've added the following to the start of the data file -
function dm_ext_ruleObjectHide()
{
return false;
}
We've embeded the flash as suggested to -
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
height="150" width="732" name="if-header">
<param name="movie" value="images/flash/if-header.swf">
<param name="quality" value="best">
<param name="play" value="true">
<param name="wmode" value="opaque">
<embed height="150" name="if-header"
pluginspage="http://www.macromedia.com/go/getflashplayer"
src="images/flash/if-header.swf"
type="application/x-shockwave-flash" width="732" quality="best"
wmode="opaque" play="true">
</object>
But still our multiple drop down menu sits behind the flash. Are we missing something else?
A: See it is necessary to have opaque parameters in <object> and <embed>tags to display submenus correctly in Firefox.
So, you should open .js file for your flash and find "embed" and"object" words.
And add opaque parameters, for example:
swfNode = '<embed type="application/x-shockwave-flash" wmode="opaque" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'"';
swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
var params = this.getParams();
for( var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
var pairs = this.getVariablePairs().join("&");
if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
swfNode += '/>';
} else { // PC IE
if (this.getAttribute("doExpressInstall")) {
this.addVariable("MMplayerType", "ActiveX");
this.setAttribute('swf', this.xiSWFPath);
}
swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') + '">';
swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" /> <param name="wmode" value="opaque"> ';
var params = this.getParams();
for( var key in params) {
swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
}
Q: I have placed my horizontal menu in javascript (1003 px width) in a table whose width is 1003px my dropdowns span from extreme left to extreme right (screen shots attached) by default the dropdown is leaving 20 pixels margins on both the ends which disturbs my layout. This happens when my screen resolution is 1024 x 768, when viewed in higher or wide screen monitors this problem does not arise. Please suggest a solution.
Appreciate your response.
A: This is space to document borders. We've set this space, so that yoursubmenus will not look like the part of browser window. If you wantyou can delete that space.
Open engine file for horizontal menu in javascript - dmenu.js - file in any text editor and find the following code:
space=15;
Change 15 to 0.
space=0;
Q: Can your menu, when placed in a master page, be propagated throughout an application's sub-folders
or will the html menu need to be added to each page separately?
A: If you don't want to create your menu on each page you can use a
server-side script (php, asp, vb, etc.) to generate html pages from
templates on your server.
However, these scripts don't work inside of Javascript .js files, so,
you should move parameters of a menu from a .js file into an html-page, e.g.:
<!-- JavaScript Tree Menu -->
<noscript><a href="http://deluxe-menu.com">Javascript Menu by Deluxe-Menu.com</a></noscript>
<script type="text/javascript"> var dmWorkPath = "menudir/";</script>
<script type="text/javascript" src="menudir/dmenu.js"></script>
<!-- (c) 2006, http://deluxe-menu.com -->
<script type="text/javascript" language="JavaScript1.2">
// and describe parameters of a menu
var parameter1=value1;
var parameter2=value2;
etc.
var menuItems = [
// here you generate items using server-side scripts (php, asp, vb, etc.)
];
The example of the menu working with PHP/MYSQL you can find here:
http://deluxe-menu.com/rq-loading-bar-MySQL-support.html
You can use cross frame menu. It allows you to build full-featured menus on the pages
that use frame-based structure. And it's not necessary to insert any code into all the pages -
just specify the additional parameters of the menu and initialize it.
To install the menu in a cross-frame mode, see more info here:
http://www.deluxe-menu.com/cross-frame-mode-sample.htmlQ: I think I am almost there.
I would like to know a couple of things.
Why the menu does not float?
Why I cannot centre the menu?
A: When you use floatable menu you can't use relative menu position.
So, if you use
var absolutePos = 0;
and to center the menu you use <p> or <div> with the center alignment your menu won't float.
To center your floatable menu you should set absolute coordinates.
var absolutePos = 1;