Recent Questions
Q: I created a custom error page for a site, but the menu would not display.
I found that this was due to the erroneous "current directory" in the bad link test, for a non-existent directory.
which is: level2/level3/
I changed the script code from:
<script type="text/javascript"> var dmWorkPath = "DMworkfiles/";</script>
<script type="text/javascript" src="DMworkfiles/dmenu.js"></script>
to:
<script type="text/javascript"> var dmWorkPath = "DMworkfiles/";</script>
<script type="text/javascript" src="/DMworkfiles/dmenu.js"></script>
adding the "/" before "DMworkfiles/dmenu.js" source reference allowed the .js file to be found in the root directory and the menu would display.
The problem is that the little menu "expansion" arrow .gif cannot be found in the "current working directory" of level2/level3/. just little "blanks" show.
I tried changing:
var dmWorkPath = "DMworkfiles/";
to:
var dmWorkPath = "/DMworkfiles/";
but that did not enable the display of the arrows.
I also had to prefix all of the links in the menu with a "/" to indicate the root directory because of the "current directory" for the bad page.
I hope I have explained the problem sufficiently.
What am I doing wrong or missing here?
A: You can use additional parameters to make menu paths absolute:
var pathPrefix_img = "http://domain.com/images/";
var pathPrefix_link = "http://domain.com/pages/";
These parameters allow to make images and links paths absolute.
For example:
var pathPrefix_img = "http://domain.com/images/";
var pathPrefix_link = "http://domain.com/pages/";
var menuItems = [
["text", "index.html", "icon1.gif", "icon2.gif"],
];
So, link path will be look so:
http://domain.com/pages/index.html
Images paths will be look so:
http://domain.com/images/icon1.gif
http://domain.com/images/icon2.gif
Please, try to use these parameters
Q: I have managed to insert a separator in a menu and set the image path but the separator image does not show.
Is there anything else I need to do?
A: Please, see the following parameters:
//------- Separators -------
//--- Separators
var separatorImage="";
var separatorWidth="5";
var separatorHeight="100%";
var separatorAlignment="right";
var separatorVImage="images/public/separator.gif";
var separatorVWidth="3";
var separatorVHeight="100%";
var separatorPadding="";
You should set a separator in the menuItems, for example:
var menuItems = [
["Home","index.cfm", , , , , , , , ],
["-"],
["About Us","about.cfm", , , , , , , , ],
];
Try that.
Q: Actually I think we've managed to figure most of the below out, so I'd be grateful if you could give us some pointers with the following instead...
How might we be able to include your javascript menu scripts within e.g. asp tags? We'd like some menu options to be hidden from some users, but I'm getting errors when I put asp tags in your data.js file.
A: It seems to me that you have syntactical error in your code.
Please, check that you don't have double quotes in your code. If you have several quotes you shoulduse back slashes before them, for example:
<%
response.Write( " ['|Test A','javascript:alert(\'Test\');', '', '', '', '', '0', '-1', '', ], " )
%>
["|Loan Profile","../pipeline/loan_profile.asp?id=<%=rsLoans('loan_id')%>", "", "","", "", "", "2"],
Q: Can you please give me an example of how I would return the full path to the selected item of the web site menu?
A: See the following example:
function getFullPath(mInd){
var result='';
// get pressed item
var params = dm_ext_getMenuParams(mInd);
if (!(params[2]>=0)) return '';
function getPathForItem(mInd,smInd,itInd){
// get for this item
var params = dm_ext_getItemParams(mInd,smInd,itInd);
var result = params[2]+ '('+ params[3]+')';
// find root item id
if (smInd <= 0) return result;
params = dm_ext_getSubmenuParams(mInd,smInd);
for ( var smInd_=0;smInd_ for ( var itInd_=0;itInd_ itParam = dm_ext_getItemParams(mInd,smInd_,itInd_);
if (itParam[0]=arams[2])// id
return result + '->' + getPathForItem(mInd,smInd_,itInd_);
}
}
return result;
};
return getPathForItem(mInd,params[1],params[2]);
}