Recent Questions
Q: I'm trying to position my menus inside absolutely positioned <DIV> tags. If the <DIV> tag has style="position:absolute; top:100px; left:50px;" in the actual tag, deluxe-menu seems to work correctly. If I have the "position:absolute; top:100px; left:50px;" in a <STYLE> tag or a linked stylesheet and applied using id or class selectors, then deluxe-menu does not work correctly: sub menus have a 100pixel offset in the y direction and a 50 pixel offset in the x direction. This is with no change to the .js data file (I have absolutePos=0;) Is this a known issue, and is it planned to be fixed?
A: See, the problem is that the script can't get css properties of the object if they are described in separate .css block (or file).
In other words, you can't get the value of "position" attribute of the object if the object doesn't have this property within inline style(style="position:absolute"). To get the value you should move .css style into style="" attribute.
Please, try to add your
css file -> inline css, for example:
For example, you should add style="position:absolute;"
to the
<DIV id=head>
So, you'll have:
<DIV id=head style="position:absolute;">
Now we have only such solution for this problem.
We'll try to fix this problem in the future versions.
Q: I have set up a menu that uses one 'data.js' file.
However, on ONE page, the menu needs to have three additional items, with a different style.
Is there a way to add the three items with a different style via javascript on that one page?
I think I know how to handle the styles, but I'm unsure how to add the three new items without using two differerent 'data.js' files- which is how I have it set up for the time being. You may want to visit the site to see what I mean.
A: You can use dm_ext_addItem() function to add items.
Please, see how you should write this function:
function dm_ext_addItem (menuInd, submenuInd, iParams)
< SCRIPT src="Welcome to Catawba Animal Clinic, P_A_files/data.js" type=text/javascript> </SCRIPT>
<script type="text/javascript"> dm_ext_addItem(0, 0, ["Boarding Request Form","request.htm", , , , "_self", "0", "-1", , ]);</script>
<script type="text/javascript"> dm_ext_addItem(0, 0, ["Boarding Policies","", , , , , "0", , , ]);</script>
<script type="text/javascript"> dm_ext_addItem(0, 0, ["Express Checkout Info","", , , , , "0", , , ]);</script>
You should upload dmenu_dyn.js file on your server.
In your data.js file you should add need Individual Item Styles.
Q: One more query, can we remove the following line from all the pages,
<noscript><a href=http://deluxe-menu.com/>Javascript Menu byDeluxe-Menu.com</a></noscript>
<script type="text/javascript"> var dmWorkPath = "/";</script>
As the script <noscript> tags are used in body section of webpage and when we use this in Head tag, it is creating a problem for us. Will removing this line would cause some problem in working of menu, as now a days every browser in the world supports JavaScripts.
A: You cannot delete the following line:
<script type="text/javascript"> var dmWorkPath = "/";</script>
Your menu won't work without this line.
You can try to move the following code in the <body> tag. Try that.
...
<!-- Deluxe Menu -->
<noscript><a href="http://deluxe-menu.com">Javascript Menu by Deluxe-Menu.com</a></noscript>
<script type="text/javascript"> var dmWorkPath = "menudir/";</script>
<script type="text/javascript" src="menudir/dmenu.js"></script>
<!-- (c) 2006, http://deluxe-menu.com -->
...
<body>
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;