Pagina openen in nieuw window

Status
Niet open voor verdere reacties.

tonndejong

Gebruiker
Lid geworden
13 mei 2007
Berichten
43
Bijgaand script wil ik aanpassen zodat de pagina "06_ledenlijsten.htm" in een nieuw window geopend wordt. Op welke wijze moet ik mijn script aanpassen.

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'
));

Hopelijk kan iemand mij helpen.
Groetjes Tonn
 
Ik neem aan dat je gebruik maakt van een of ander Javascript menu geval... Nou, dan kunnen we je niet helpen als je niet eventjes wat meer code geeft, of een link naar een online voorbeeld.

Overgens zijn Javascript menu's altijd een slecht idee. Sommige mensen hebben geen Javascript... en dus geen menu.
 
Ik heb de volledige code toegevoegd.
Het betreft de site WWW.TCT93.nl en het menu onder de kop Leden. De ledenlijsten
Hopenlijk heb je hier wat meer aan.

Groetjes,
Tonn
 

Bijlagen

  • content.zip
    839 bytes · Weergaven: 53
Hoi Tonn,

Het gaat in dit geval niet om je content.js maar om het menu.js. Er staat, op regel 70, dit stukje:
HTML:
target="main"
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:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan