Recent Questions
Q: Hi, I was wondering if there is a way to disable the dhtml pull down menu links on a page. (I am creating a site where, in a certain mode, the page is in preview and I don't want the links to work).
Is this possible?
I can run this function across my other <A> tags (which sets them all to the current page), but it doesn't reach into the deluxe menu.
for(i=0;i document.links[i].href = "<?php echo(getURL($_SERVER["REQUEST_URI"]));?>>";
document.links[i].target = "_self";
}
A: To disable your dhtml pull down menu items you should set the following parameter to disable all items:
var itemTarget="_";
Or you can disable items individually.
["Home","testlink.html", "", "", "", "_", "", "", "", "", "", ], //disabled
["Product Info","", "", "", "", "", "", "", "", "", "", ],
["|Features","testlink.html", "", "", "", "_", "", "", "", "", "", ], //disabled
["|Installation","", "", "", "", "", "", "", "", "", "", ],
You can also use function dm_ext_changeItem (menuInd, submenuInd, itemInd, iParams)
function to disable items on-the-fly, for example:
dm_ext_changeItem (0, 2, 3, ["", "", "", "", "", "_", "", "", ""]);
Q: The menu maps to the width size of the longest menu item on the list, can you tell me how I can restrict this, and have a fixed menu size.
A: Unfortunately it is really so.
You can try to wrap your text.
You should set the following parameter:
var noWrap = 0;
or use <br> tags within menuItems.
Q: What I would like to see is the ability to have a base site navigation menu with all the definitional entries (size, locations, icons, etc.) defined but all the menuitems be called from an Ajax file.
A: You cannot use ajax submenus for the top items.
But you can use several .js file, for example:
params.js //file with all menu parameters (size, locations, icons, etc.)
all code before
var menuItems = [
...
];
dm_init();
data_ajax1.js //data files for ajax submenus
data_ajax2.js
data_ajax3.js
...
main_data.js - data file with the following code:
var menuItems = [
["Item 1","", "", "", "", "", "0", "0", "data_ajax1.js", "", "", ],
["Item 2","", "", "", "", "", "0", "0", "data_ajax2.js", "", "", ],
["Item 3","", "", "", "", "", "0", "0", "data_ajax3.js", "", "", ],
["Item 4","", "", "", "", "", "0", "0", "data_ajax4.js", "", "", ],
];
dm_init();
You can also place this code into your html page directly (in the place where you want tohave a menu):
<script type="text/javascript">
var menuItems = [
["Item 1","", "", "", "", "", "0", "0", "data_ajax1.js", "", "", ],
["Item 2","", "", "", "", "", "0", "0", "data_ajax2.js", "", "", ],
["Item 3","", "", "", "", "", "0", "0", "data_ajax3.js", "", "", ],
["Item 4","", "", "", "", "", "0", "0", "data_ajax4.js", "", "", ],
];
dm_init();
Q: I am using cross frame menu dropdown. I have three frames: Top, Left and main (middle).
I am using the script and data from your sample file; it works fine. Only problem is submenu is offset to the right. It does not show up exactly down below the top menu.
What could be the problem?
A: Deluxe Menu doesn't work correctly (incorrect submenu position) if youhave complex frame structure.
The problem is in a structure of your frameset.
Mozilla browsers can't determine absolute coordinates for a frame, so submenus drop down with an offset.
You should create, for example, the following frameset structure:
--|------------
| menu
--|------------
|
| submenus
|
Now a top row has 2 columns and all browsers can determine a width of the 1st column in the second row.
You should write init function in the following way in that case:
dm_initFrame("mainframe",1,3,0);