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 have a paid version of the menu, and I was trying to add the functionality of dynamically adding net dhtml menu item
When I added the code I get the following JS error,
menu is undefined in dmenu_dyn.js (line 13)
dm_ext_addItemPos(1, 0, ["Netscape", "testlink.htm", "", 4 more...], -1)dmenu_dyn.js (line 13)
dm_ext_addItem(1, 0, ["Netscape", "testlink.htm", "", 4 more...])dmenu_dyn.js (line 13)
function dm_ext_hideAllSubmenus(mInd){_dmsm(mInd);};function dm_ext_changeItem(m...
I copied the example from your site, just to see if I can use it.
What am I doing wrong?
A: See, we have two menus on the sample's page
http://deluxe-menu.com/dynamic-functions-sample.html
That's why we write menuInd = 1
dm_ext_addItemPos(1, ...
dm_ext_addItemPos(1, 0, ["Netscape", "testlink.htm", "", 4 more...], -1)dmenu_dyn.js (line 13)
dm_ext_addItem(1, 0, ["Netscape", "testlink.htm", "", 4 more...])dmenu_dyn.js (line 13)
But if you have only one menu you should write menuInd = 0
dm_ext_addItemPos(0, ...
dm_ext_addItem(0, ...
Q: Can I use javascript to get the object (getElementByID). If not howdo I hide my dropdown menu on print?
A: You can add a new button to print your page and call onClick event, soyou should write:
<body ....
onClick="document.getElementById('dm0m0').style.visibility='hidden'; window.print();">
...
</body>
Or you can use the same javascript code from your menu item.
For example:
var menuItems = [
["Print", "javascript:document.getElementById('dm0m0').style.visibility='hidden';
window.print();", icon1, icon2],
];
But if you want to hide the menu when your customers push "File/Print"you should write so:
You must create two functions, for example:
function myprint()
{ document.getElementById('dm0m0').style.visibility='hidden';
window.print();
}
function myprint2()
{ document.getElementById('dm0m0').style.visibility='visible';
window.print();
}
You should add this functions into your code.
And then you must write so:
window.onbeforeprint = myprint;
window.onafterprint = myprint2;
Q: I still do not understand your answer about the simple java menu arrows, which work in preview, but not on the website. The html is correct.
A: You have
var arrowImageMain=["ss.files/arrow_sub5.gif","ss.files/arrow_sub5.gif"];
in your data js, so the arrows must be here
http://domain/ss.files/arrow_sub5.gif
you arrows is here
http://domain/menu/ss.files/arrow_sub5.gif
You can use
var pathPrefix_img="menu/";
or change paths here
var arrowImageMain=["ss.files/arrow_sub5.gif","ss.files/arrow_sub5.gif"]; --> menu/ss.files/arrow_sub5.gif