Recent Questions
Q: We are registered users of the Deluxe Menu software. Today I tried to use the Javascript API, but there is something I do not understand and want to ask for support.
First, I set up a very simple menu:
var menuItems=[
['Menu 1'],
['|Submenu 1'],
['Menu 2'],
['|Submenu 2'],
];
This menu is built via dm_init().
Then, I inspect the menu (in Firebug):
>>> dm_ext_getSubmenuParams(0, 0)
["dm0m0", 2, "", 0, 1]
>>> dm_ext_getSubmenuParams(0, 1)
["dm0m1", 1, "dm0m0i0", 1, 0]
>>> dm_ext_getSubmenuParams(0, 2)
["dm0m2", 1, "dm0m0i1", 1, 0]
Ok, there are three submenus. Now I am going to delete one of them:
>>> dm_ext_deleteItem(0, 0, 1)
"Menu 2" disappears on the screen, this works as expected. But now when I re-inspect the menu using the API, I find that the API reports exactly the same as before:
>>> dm_ext_getSubmenuParams(0, 0)
["dm0m0", 2, "", 0, 1]
>>> dm_ext_getSubmenuParams(0, 1)
["dm0m1", 1, "dm0m0i0", 1, 0]
>>> dm_ext_getSubmenuParams(0, 2)
["dm0m2", 1, "dm0m0i1", 1, 0]
So, it seems the report function continues to know about the original menu structure and reflects it. Am I using the API in a wrong way?
The problem I want to solve is to remove the entire menu dinamico dhtml, in order to rebuild it dynamically. Because I did not see a function aimed to this functionality, my plan was to delete all main menu entries subsequently until the main menu inspector no longer reports an entry. Is there (a better) way to achieve this?
A: Unfortunately, dm_ext_deleteItem() only change visibility of theseitems.
It doesn't delete them completely.
We'll try to fix it in the next versions of Deluxe Menu.
Q: I'm a registered user. I'm looking to make a space between dhtml cross browser menu buttons, I checked the FAQ which suggested using ["-"], between items but it didn't work. It deleted the dhtml cross browser menu items below it. I'm looking to put a space between
["||All Images","gallery_all.html", , , , "_self", , , , ],
and
["||Pricing & Ordering Info","gallery_pricing.html", , , , "_self", , , , ],
A: To add a separator you should
//--- Separators
var separatorImage=""; //for subitems (top items in vertical menu)
var separatorWidth="100%";
var separatorHeight="3px";
var separatorAlignment="right";
var separatorVImage="separator.gif"; //for the top items (subitems items in vertical dhtml cross browser menu)
var separatorVWidth="100%";
var separatorVHeight="2px";
var separatorPadding="";
You can create separators using menuItems (you can do it in Deluxe
Tuner, use "Add separator" button), for example:
["||All Images","gallery_all.html", , , , "_self", , , , ],
["||-"],
["||Pricing & Ordering Info","gallery_pricing.html", , , ,"_self", , , , ],
Q: Is it possible to put PHP, or other scripting languages within the tab menu javascript?
A: See, for each item you should assign the ID property of the content DIV.
["Style Name","contentName", "", "", "", "", "1", "", "", ],
["-","", "", "", "", "", "0", "", "", ],
["Style Description","contentDescription", "", "", "", "", "", "", "", ],
["-","", "", "", "", "", "0", "", "", ],
["Style Variations","contentVariations", "", "", "", "", "", "", "", ],
["-","", "", "", "", "", "0", "", "", ],
["Empty","", "", "", "", "", "2", "", "", ],
And on your html page you should create DIV's with such ID.
<div id="contentName" style="height: 0%; visibility: hidden;" class="tabPage">
<br><br><br>
<p align=center><img src="img/style01_title.gif" width=140 height=90 alt="Glass Style Tabs"></p>
<br><br><br>
You should paste your content here!!!!!
</div>
You can paste any code within DIV's (PHP, Javascript ...)
Q: There is one other issue I am hoping you can help with? When the dhtml web menu drops down in Safari over a SWF -- it disappears. I have added the function dm_ext_ruleObjectHide() code to the top of my data file. Can you please advise what else I can try?
A: Submenu couldn't overlap flash in Safari correctly.
And the following code:
// Safari detect
if ((parseInt(navigator.productSub)>=20020000) &&(navigator.vendor.indexOf('Apple Computer') != -1) &&(navigator.product=='Gecko'))
return true;
in function
function dm_ext_ruleObjectHide()
{
// Safari detect
if ((parseInt(navigator.productSub)>=20020000) &&(navigator.vendor.indexOf('Apple Computer') != -1) &&(navigator.product=='Gecko'))
return true;
else
return false;
}
cause flash to disappear in Safari.
You can try to write this function in the following way:
function dm_ext_ruleObjectHide()
{
return false;
}