Recent Questions Javascript High Performance Tree Menu
Q: Greetings. How do I make a menu item as default selected and open when the page loads with the dhtml menu bar script? Thanks.
A: JavaScript Tree Menu has only two states normal and mouseover.
Try to do the following things:
- delete var pressedItem=1; parameter from your data file
- set correct parameter on each page before you call data file, forexample:
<noscript><a href="http://deluxe-menu.com">dhtml menu bar script by Deluxe-Menu.com</a></noscript>
<script type="text/javascript"> var dmWorkPath = "menudir/";</script>
<script type="text/javascript" src="menudir/dmenu.js"></script>
<script type="text/javascript"> var pressedItem=3;</script>
...
<script type="text/javascript" src="menudir/data.js"></script>
You can also set a pressed item using Javascript API:
function dm_ext_setPressedItem (menuInd, submenuInd, itemInd, recursion)
Sets a current pressed item.
menuInd - index of a dhtml menu bar script on a page, >= 0.
submenuInd - index of a submenu, >= 0.
itemInd - index of an item, >=0.
recursion = true/false - highlight parent items.
But notice, to use dm_ext_setPressedItem() you should know ID of selected item and subitem. You can't get this ID after you reload your page. That is why you should write your own code on PHP.
Q: I developed a little test dhtml menu slide tree. For the items "Aktivitaeten Auswahl" and "Kontakt Auswahl" I have no subitems. The item line shows a little button with double arrows.
I would like to get rid of these buttons, because there are no subitems.
How can I do that?
A: You should create Individual XP Style and apply it for these items.
var tXPStyles = [
["tXPTitleBackColor=#D9DAE2","tXPTitleBackImg=data-quelle.files/xptitle2_s.gif", "tXPExpandBtn=data-quelle.files/right.gif,data-quelle.files/right.gif,data-quelle.files/right.gif,data-quelle.files/right.gif"],
];
Q: When doing a multi-frame frameset (1 top frame, 2 bottom frames) like this:
<frameset ID="frames" ONLOAD="getBottom()" ROWS="50, *" BORDER="0" FRAMEBORDER="no" FRAMESPACING="0">
   <frame NAME="frmTop" SRC="top.htm" MARGINHEIGHT=0 MARGINWIDTH=0 SCROLLING=NO NORESIZE FRAMEBORDER="0" />
    <frameset ID="bottomFrames" cols="171,*">
     <frame name="frmLeft" src="left.htm" MARGINHEIGHT=0 MARGINWIDTH=0 SCROLLING=NO NORESIZE FRAMEBORDER="0"/>
     <frame name="frmMain" MARGINHEIGHT=0 MARGINWIDTH=0 SCROLLING=NO NORESIZEFRAMEBORDER="0" />
    </frameset>
</frameset>
And using the dm_frameinit like this:
dm_initFrame("[object]", 0, 2, 0);
it works fine in IE -> the menus are displayed exactly under the text and in the bottom right frame.
However, in Firefox, the menu drop down is displayed to the right of the top menu text, and exactly the number of pixels as the width of the left frame.
Perhaps there needs to be some FireFox checking to fix this?
Can you help me with that?
A: The problem is in a structure of your frameset.
Mozilla browsers can't determine absolute coordinates for a frame, sosubmenus drop down with an offset.
You should create the following frameset structure:
 --|------------
   | menu
 --|------------
   |
   | submenus
   |
Now a top row has 2 columns and all browsers can determine awidth of the 1st column in the second row.
Q: I want to use this menu with ASP. Can the link items NOT open a new window?
For ASP the current window needs to be used with whatever value is in the link parameter.
A: JavaSript menu uses window.open or href-method depending on the target parameter.
If you set "" or "_self" target the menu uses href-method and if youset "_blank" or frame name the menu uses window.open and opens your link in a new window.
You should use the following parameter
var titemTarget = "_self";
or
var titemTarget = "";
Please, see also individual items targets, for example:
{|The Team, http://www.domain.co.uk/receptionist.htm, _blank,}
Change "_blank" to "" or to "_self".