Recent Questions
Q: With the new version, my body onload function is blocked.
In our application we do something with a body onload function.
It doesn't get called if I use the deluxe-menu. If I remove deluxe-menu js files from html, it works.
Is there a way I can use deluxe-menu and get my onload handler called?
A: Deluxe Menu detects any user's onload events and remember them in the case when you write a such events before dm_init(); call.
Try to delete onload event from <body> and write the following at theend of a page (after dm_init() call):
<script type="text/javascript"> onload = onloadHandler;</script>
That should work.
Q: How can I place the dhtml pull down menu onto multiple pages using FrontPage 2000? I am not using CSS. Do I need to copy the html into all of the pages, or just place the script into each page?
A: Yes, you should paste the following html code on your pages:
<noscript><a href="http://deluxe-menu.com">Javascript Menu by Deluxe-Menu.com</a></noscript>
<script type="text/javascript" language="JavaScript1.2" src="dmenu.js"></script>
...
<script type="text/javascript" language="JavaScript1.2" src="data.js"></script>
If you don't want to add such code on each page, you can try to useframes, the dhtml pull down menu has a cross-frame mode. Also you can use aserver-side script (php, asp, vb, etc.) to generate html pages fromtemplates on your server.
Q: I will build menu for several books’ Contents, each book is more than 100 lines and has links. I think if all the books’ contents in 1 *.JS file then it is TOO LOONG!!.
Can I break it down to 1 book for 1*.JS ? How?
A: You cannot divide your menuItems parameter.
You can only use one .js file for your menu parameters and the other.js file for your menuItems = [...];
But you can do it in two ways.
1) You can try to use several menus on the one page, for example:
param.js // file with menu parameters (all parameters before menuItems = [...];)
menu1.js // menuItems for "AC-DC", "ANLOG"
menu2.js // menuItems for "DIGITAL", "WinXP"
menu3.js // menuItems for "MS-Word", "MS-Excel"
In these menu files you should write
menuItems = [
...
];
dm_init();
Then you should install your menu in the following way
<script type="text/javascript" src="param.js"></script>
<table>
...
<script type="text/javascript" src="menu1.js"></script>
...
<script type="text/javascript" src="menu2.js"></script>
...
<script type="text/javascript" src="menu3.js"></script>
But it will be easier to use vertical menu in such case
var isHorizontal=0;
var smColumns=1;
2) You can also try to add some code, see the attached example.
In the first file (@MY books (Multiple Col.js) I write menuItems for the first item "AC-DC".
Notice that you should delete comma at the end of the last item
var menuItems = [
["AC-DC","", , , , , , , , ],
["|@Book1","testlink.htm", , , , , , , , ],
...
["|@Book3","", , , , , , , , ],
["||CH02","", , , , , , , , ],
["||CH01","", , , , , , , , ] // delete comma at the end of the last item
];
In the second file (@MY books (1.js) you should write
menuItems = menuItems.concat(
[
["ANLOG","", , , , , , , , ],
["|@Book1","", , , , , , , , ],
["|@Book2","", , , , , , , , ],
["|@Book3","", , , , , , , , ] // delete comma at the end of the last item
]
);
In the third file (@MY books (2.js) you should write
menuItems = menuItems.concat(
[
["DIGITAL","", , , , , , , , ],
["|Item 1332","", , , , , , , , ],
["WinXP","", , , , , , , , ],
["|Item 1333","", , , , , , , , ],
["MS-Word","", , , , , , , , ],
["|Item 1334","", , , , , , , , ],
["MS-Excel","", , , , , , , , ],
["|Item 1335","", , , , , , , , ] // delete comma at the end of the last item
]
);
dm_init();
Notice that you should write dm_init(); function in the last file.
In the .html file you should write
...
<tr>
<script type="text/javascript" src="@MY books (Multiple Col.js"></script>
<script type="text/javascript" src="@MY books (1.js"></script>
<script type="text/javascript" src="@MY books (2.js"></script>
</tr>
I hope you understand me.
Q: Compliments on your product, I particularly enjoy the complete set of gui and java, that allows for the quick changes.
After a couple of months of using the trial, I have now purchased it and installed the license.
My question however regards the performance of the menu. Using firebug I note that my deluxe menu .js are the performance bottlenecks, It appears as if they are not being cached and it appears that collecting them is taking longer then the other .js files. What can I do to optimize the load time of the javascript multi level menu and prevent, reloading it from the server with every page reload. The apache has set the expiry correct I believe, as I understand from the header.
A: You can try to use AJAX technology.
AJAX-like technology: data for submenus can be loaded "on-the-fly" from the server.
New parameter:
var tajax = 0/1; - disables/enables AJAX-like support
Current syntax for item parameters ( var tmenuItems):
[text, link, iconNormal, iconOver, iconExpanded, tip, target, itemStyleInd, itemXPStyleInd, jsFileName]
Where jsFileName - .js filename on the server with submenu items ( var tmenuItems).