Recent Questions
Q: I would like to add the javascript API to a link contained in my website that will have the corresponding item in the deluxe-tree menu act as if it was "clicked".
Presumably I need to add the script (for example) <A HREF="http://deluxe-menu.com/features-info.html" TARGET="_self" "..javascriptHere ..">. Can you give me an example please of what code goes into there.
I presume I use dm_ext_setPressedItem (menuInd, submenuInd, itemInd, recursion) but where do I get the ????Ind data from and make the javascript call in the above link.
A copy of a working example together with where to get the data , perhaps on your own web pages, would help.
A: Deluxe Tree doesn't save a presseditem as it saves a tree state. It works within 1 page only and if youreload the page you should set a pressed item using Javascript API:
function dtreet_ext_setPressedItem (menuInd, itemID)
<script type="text/javascript">
var i = <?php echo $selitem; ?>;
onload=setPressed;
function setPressed()
{
dtreet_ext_setPressedItem(0,dtreet_ext_getItemIDByIndex(0, i));
}
</script>
You should define selitem using server side script.
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: As I have stated before, your Deluxe-Menu is very very good.
But there is allways room for improvement.
Is there any chance to see support for the following in Deluxe-Menu:
When I move the mousepointer above a menuitem and right-click I would like to see in the javascript contextual menu (the context menu provided by the browser):
Open Link in new window
Open Link in new tab
If the above is not possible or not something you want to enable.... then, there should be possible to make a workaround to make this work:
I see there is support for custom javascript contextual menus.....
.... is there any possibility to make a custom context menu that show above a menuitem and that show when right clicking on the menuitem.
Should hopefully be possible to create in such way that I create one context menu in javascript (the deluxe menu way... ) , but when clicking on "Open link in new window" from that custom menu, then the JS code should call a javascript function of mine (or yours), with a parameter related to the menuitem that was right-clicked...
And this javascript function should be able to resolve the actual URL (based on the input parameter rel. to the menuitem) and then open a new window using window.open()
If not possible to implement using the native browser context menu, then I belive it should be possible to do it using my workaround how to.....
Just a thought....
Any suggestions on how I can make the workaround work, or if maybe you could support the workaround in some way in future releases of Deluxe-Menu?
A: Yes, there is a workaround.
You can write your items in the following way:
["|<a href='http://www.domain.com' class="link">test test test</a>",""],
You should assign style for this link.
A.link {
...
}
A.link:hover {
...
}
Q: I just noticed as well that I cannot change the spacing of the buttons.
Right now the buttons are tight together, how do I create a gap between each dhtmlmenu button?
A: You can paste the separator.
Please, see the following parameters:
//------- Separators -------
var separatorWidth = "10";
var separatorHeight = "20";
var separatorAlignment = "center";
var separatorImage = "C";
var separatorVWidth = "150";
var separatorVHeight = "10%";
var separatorVImage = "image.jpg";
You can create separators using menuItems, for example:
var menuItems = [
["item 1"],
["-"], // this item is separator
["item 2"],
];
You can also use this parameter:
var itemPadding = "4px";
You can also set multiple values, for example:
"2px 15px 5px 5px";
(top, right, bottom, left)