Avatar of awp5379
awp5379

asked on 

How to make java based menu open links in new browser windows?

How to make java based menu open links in new browser windows? I have the code below (simplified the number of menus displayed) with menus for download MDAC and .Net framework 2.0. Currently all links open in the same window which is fine in some scenarios but not in others.

So lets assume that MDAC should open in the same window (which currently works), but I want to open the .net framework download link in a new window, how do I achieve that? I can modify the rest of the menus myself (something like 30, and modify with changes as needed).

I'm assuming that the code in the writeDrop function needs to be modified? Please include a code example and description on how to add that functionality.

Attached zip file with source files.
var fix = 1; var delay = 2000; var modd = 0;
var bar = new menuBar();
bar.addMenu('Links');
bar.addItem('http://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&DisplayLang=en','MDAC');
bar.addItem('http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en','.Net framework 2.0');
 
 
var blc = '#ffffff';var blh = '#ffffff';var bla = '#a4ffff';var lc = '#0000ff';var lh = '#0000ff';var la = '#0000ff';
 
function menuBar() 
{
this.jj = -1;this.kk = 0;this.mO = new Array();this.addMenu = addMenu;this.addItem = addItem;this.writeBar = writeBar;
this.writeDrop = writeDrop;
}
 
function addMenu(main) 
{
this.mO[++this.jj] = new Object();this.mO[this.jj].main = main;this.kk = 0;this.mO[this.jj].link = new Array();
this.mO[this.jj].name = new Array();
}
 
function addItem(link,name) 
{
this.mO[this.jj].link[this.kk] = link;this.mO[this.jj].name[this.kk++] = name;
}
 
function writeBar() 
{
for (var i=1;i <= this.mO.length; i++)
{document.write('<span id="navMenu'+i+'" class="mH">'+this.mO[i-1].main+'<\/span>');
}
 }
 
function writeDrop() 
{
for (var i=1;i <= this.mO.length; i++)
{document.write('<div id="dropMenu'+i+'" class="mD">\r\n');for (var h=0;h < this.mO[i-1].link.length; h++)
{document.write('<a class="mL" href="'+this.mO[i-1].link[h]+'">'+this.mO[i-1].name[h]+'<\/a>\r\n');
}
document.write('<\/div>\r\n');
}
 }
 
if (fix) window.onscroll=sMenu;window.onload=iMenu;var onm = null;var ponm = null;var podm = null;var ndm = bar.mO.length;
 
function posY() 
{
return typeof window.pageYOffset != 'undefined' ? window.pageYOffset:document.documentElement.scrollTop? 
document.documentElement.scrollTop: document.body.scrollTop?document.body.scrollTop:0;
}
 
function sMenu() 
{
document.getElementById('mB').style.top = posY() + 'px'; for (i=1; i<=ndm; i++) 
{menuName = 'dropMenu' + i;odm = document.getElementById(menuName); 
if (onm) {var yPos = onm.offsetParent.offsetTop + onm.offsetParent.offsetHeight;odm.style.top = yPos + 'px';
}
 }
  }
 
function iMenu() 
{
if (document.getElementById) {document.onclick = mHide; for (i=1; i<=ndm; i++) 
{menuName = 'dropMenu' + i; navName = 'navMenu' + i; odm = document.getElementById(menuName); 
onm = document.getElementById(navName); 
odm.style.visibility = 'hidden'; 
onm.onmouseover =  mHov; onm.onmouseout = mOut;
}
 onm = null;
 }
  return;
  }
 
function  mHov(e) 
{
if (modd) clearTimeout(modd);
document.onclick = null; 
honm = document.getElementById(this.id); 
if (honm != onm) {honm.style.color = lh; honm.style.backgroundColor = blh;} 
menuName = 'drop' + this.id.substring(3,this.id.length); 
odm = document.getElementById(menuName); 
if (podm == odm) {mHide(); return;} 
if (podm != null) mHide(); onm = document.getElementById(this.id); 
if ((ponm != onm ) || (podm == null)) {onm.style.color = la; onm.style.backgroundColor = bla;} 
if (odm) {xPos = onm.offsetParent.offsetLeft + onm.offsetLeft; 
yPos = onm.offsetParent.offsetTop + onm.offsetParent.offsetHeight; 
odm.style.left = xPos + 'px'; odm.style.top = yPos + 'px'; odm.style.visibility = 'visible'; 
odm.onmouseover = omov; odm.onmouseout = omot; podm = odm; ponm = onm;
}
 }
 
function omov() {if (modd) clearTimeout(modd);}
function omot() {modd = setTimeout('mHide()',delay);}
 
function mOut(e) 
{modd = setTimeout('mHide()',delay);
document.onclick = mHide;oonm = document.getElementById(this.id); 
if (oonm != onm) {oonm.style.color = lc; oonm.style.backgroundColor = blc;
}
 }
 
function mHide() 
{document.onclick = null; if (podm) {podm.style.visibility = 'hidden'; 
podm = null; ponm.style.color = lc; ponm.style.backgroundColor = blc;} onm = null;}
if (fix) {var ag = navigator.userAgent.toLowerCase();var isG = (ag.indexOf('gecko') != -1);var isR=0;
if (isG) {t = ag.split("rv:"); isR = parseFloat(t[1]);}if (isR && isR<1) setInterval('sMenu()',50);}

Open in new window

Menu.zip
JavaWeb DevelopmentJavaScript

Avatar of undefined
Last Comment
awp5379

8/22/2022 - Mon