Hoi Tonn,
Het gaat in dit geval niet om je content.js maar om het menu.js. Er staat, op regel 70, dit stukje:
wat dus veranderd moet worden.
Voordat je iets gaat doen, maak een kopie van je huidige menu.js bestand
Als we elk 'menucontext' array uitbreiden met een nieuwe parameter die aangeeft waar het heen moet, dan krijg je dus zoiets:
[JS]menuContent [6] = new Array (
-1,
-1,
170,
xStart, // x coordinate (absolute) of left corner of this menu list, -1 if the coordinate is defined from parent x-coordinate
251, // y coordinate (absolute) of left corner of this menu list, -1 if the coordinate is defined from parent y-coordinate
new Array (
'Ledenlijst toer', 'leden/club/06_ledenlijsten.htm',
'Ledenlijst recreanten', 'leden/club/06_ledenlijsten.htm',
'Smoelenboek', '06_smoelenboek.htm'),
'_blank');[/JS]
Hier is een nieuwe versie van menu.js:[JS]// Don't change these parameters
var delay = 200; /////
var menuElement = new Array ();
var usedWidth = 0;
var numOfMenus = 0;
/// ----------------------------
// check browser version
isNC = (document.layers) ? 1 : 0;
isOPERA = (navigator.userAgent.indexOf('Opera') >= 0)? true : false;
isIE = (document.all && !isOPERA)? true : false;
isDOM = (document.getElementById && !isIE && !isOPERA)? true : false;
var topID = -1;
// constructor of menu elements
function menuConstructor (id, content, menuType)
{
this.ID = id;
this.parentID = content [0]*1;
this.parentItemID = content [1]*1;
this.width = content [2]*1;
this.timerID = -1;
this.isOn = false;
this.item = new Array ();
this.currItemID = -1;
this.height = 220;
this.x = content [3]*1;
this.hrefLoc = content[6] || "main";
if (this.x < 0 && this.parentID == -1)
{
this.x = initX + usedWidth;
usedWidth = usedWidth + this.width;
}
else if (this.x < 0 && this.parentID > -1)
{
this.x = menuElement [this.parentID].x
+ menuElement [this.parentID].width
- xOverlap;
}
this.y = content [4]*1;
if (this.y < 0 && this.parentID == -1) {
this.y = initY;
//alert(this.y);
}
else if (this.y < 0 && this.parentID > -1)
this.y = menuElement [this.parentID].y
+ itemHeight*this.parentItemID
+ yOverlap;
items = content [5];
if(menuType=='bottom') { /* aan de onderkant uitgelijnt */
layerBody = '<table width=' + this.width + ' style=" height: ' + this.height + 'px" cellpadding=0 cellspacing=' + borderSize + ' border=0>';
layerBody += '<tr><td height="100%">';
layerBody += '<table id=table' + this.ID + ' style="height: 0px" cellpadding=0 cellspacing=0 border=0><tr><td></td></tr></table>';
layerBody += '</td><tr>';
layerBody += '<tr><td height="1"> </td></tr>';
} else { /* aan de bovenkant uitgelijnt */
layerBody = '<table width=' + this.width + ' cellpadding=0 cellspacing=' + borderSize + ' border=0>';
}
for (j = 0; j <= items.length - 2; j = j + 2)
{
controlBlock = ' onMouseOver = "enterItem (' + this.ID + ', ' + ((j + 2)/2 - 1) + ');" onMouseOut = "exitItem (' + this.ID + ', ' + ((j + 2)/2 - 1) + ');" ';
layerBody += '<td height=' + itemHeight + ' width=' + this.width + '><a class=subMenu href='+ items [j + 1] +' ' + controlBlock + 'target="' + this.hrefLoc + '">' + items [j] + '</a></td>';
if (j < items.length - 2)
layerBody = layerBody + '<tr>\n';
else
layerBody = layerBody + '\n';
}
if (!isNC)
layerHeader = '<div id=Menu' + this.ID +
' onMouseOver="enterMenu (' + this.ID + ');" onMouseOut = "exitMenu (' + this.ID + ');"' +
' style="background: ; width: ' + this.width + '; visibility: hidden; position: absolute; z-index:1; filter:alpha(opacity=0);">';
else
layerHeader = '<layer id=Menu' + this.ID +
' onMouseOver="enterMenu (' + this.ID + ');" onMouseOut = "exitMenu (' + this.ID + ');"' +
' visibility=hide left=' + this.x +
' top =' + this.y + '>';
layerHeader += '<table width=' + this.width + ' cellpadding=0 cellspacing=0 border=0>' +
'<td >';
if(menuType=='bottom') {
layerFooter = '</table></td></table>';
} else {
layerFooter = '</table></td></tr><tr><td height="1"> </td></tr></table>';
}
if (!isNC)
layerFooter = layerFooter + '</div>';
else
layerFooter = layerFooter + '</layer>';
document.writeln (layerHeader + layerBody + layerFooter);
return this;
}
function enterTopItem (ID)
{
if (topID != ID && topID != -1)
hideTree (topID);
releaseTree (ID);
topID = ID;
show (ID);
}
function exitTopItem (ID)
{
menuElement [ID].timerID = setTimeout ('hide (' + ID + ')', delay);
}
function enterItem (menuID, itemID)
{
var currItemID = menuElement [menuID].currItemID;
if (currItemID != i & currItemID > -1)
hide (currItemID);
for (var i = 0; i < numOfMenus; i++)
{
if (menuElement
.parentID == menuID &&
menuElement .parentItemID == itemID)
{
clearTimeout (menuElement .timerID);
menuElement .timerID = -1;
show (i);
return 0;
}
}
return -1;
}
function exitItem (menuID, itemID)
{
for (var i = 0; i < numOfMenus; i++)
{
if (menuElement .parentID == menuID &&
menuElement .parentItemID == itemID)
{
menuElement .timerID = setTimeout ('hide (' + i + ')', delay);
return 0;
}
}
}
function enterMenu (ID)
{
var parentID = menuElement [ID].parentID;
if (parentID == -1)
{
clearTimeout (menuElement [ID].timerID);
menuElement [ID].timerID = -1;
}
else
releaseTree (ID);
}
function positionMenu (ID)
{
defaultHeight = menuElement [ID].height;
this.scrolloffset = 0;
if(window.innerHeight) {
if(isIE) { this.scrolloffset = document.body.scrollTop; }
else if(isNC) { this.scrolloffset = window.pageYOffset; }
}
else if(document.documentElement && document.documentElement.clientHeight) {
if(isIE) {this.scrolloffset = document.documentElement.scrollTop; }
else if(isNC) { this.scrolloffset = window.pageYOffset; }
}
else if(document.body) {
if(isIE) { this.scrolloffset = document.body.scrollTop; }
else if(isNC) { this.scrolloffset = window.pageYOffset; }
}
//newHeight = parseInt(defaultHeight) - parseInt(this.scrolloffset);
//document.all['table' + ID].style.height = newHeight+'px';
//alert(document.all['specialHeight'].style);
//document.all['specialHeight'].style.height = newHeight+'px';
newHeight = parseInt(this.scrolloffset);
document.all['table' + ID].style.height = newHeight+'px';
}
function exitMenu (ID)
{
timeoutTree (ID);
}
function hideTree (ID)
{
hide (ID);
for (var j = 0; j < numOfMenus; j++)
{
if (menuElement [j].parentID == ID &&
menuElement [j].isOn)
{
hideTree (j);
return 0;
}
}
}
function releaseTree (ID)
{
clearTimeout (menuElement [ID].timerID);
menuElement [ID].timerID = -1;
var parentID = menuElement [ID].parentID;
if (parentID > -1)
releaseTree (parentID);
}
function timeoutTree (ID)
{
menuElement [ID].timerID = setTimeout ('hide (' + ID + ')', delay);
var parentID = menuElement [ID].parentID;
if (parentID > -1)
timeoutTree (parentID);
}
function FadeIn (fadeNaam)
{
if (document.all[fadeNaam].filters.alpha.opacity < 100)
{
document.all[fadeNaam].filters.alpha.opacity=document.all[fadeNaam].filters.alpha.opacity+30;
setTimeout("FadeIn('" + fadeNaam + "')",20)
}
}
function show (ID)
{
if (isDOM)
document.getElementById('Menu' + ID).style.visibility = "visible";
else if (isIE)
{
document.all['Menu' + ID].style.visibility = "visible";
document.all['Menu' + ID].filters.alpha.opacity = 85;
var fadeNaam = 'Menu' + ID
}
else if (isNC)
document.layers[ID].visibility = "show";
//window.status = "height: " +document.getElementById('Menu' + ID).style.height + "Width: " +document.getElementById('Menu' + ID).style.width;
menuElement [ID].isOn = true;
if (menuElement [ID].parentID > -1)
menuElement [menuElement [ID].parentID].currItemID = ID;
}
function hide (ID)
{
if (isDOM)
document.getElementById('Menu' + ID).style.visibility = "hidden";
else if (isIE)
document.all['Menu' + ID].style.visibility = "hidden";
else if (isNC)
document.layers[ID].visibility = "hide";
menuElement [ID].isOn = false;
if (menuElement [ID].parentID > -1)
menuElement [menuElement [ID].parentID].currItemID = -1;
}
function createMenuTree ()
{
for (var i = 0; i < menuContent.length; i++)
{
var menuType = 'bottom';
menuElement = new menuConstructor (i, menuContent , menuType);
numOfMenus++;
}
}
//window.onload=function() {
createMenuTree ();
//}[/JS]noot dat ik het dus niet getest heb, maar het zou moeten werken. Als t niet werkt, graag een testvoorbeeld online.
Ohja, je hoeft nu niet ELK menuitem aan te passen, alleen diegene die dus _blank moeten worden. Als je het niet aangeeft, wordt het automatisch "main".
En nogwat, Javascript menu's zijn een Slecht Idee. Als je geen Javascript hebt, of het niet aanstaat, werkt je menu niet meer!!!!
:thumb: