PDA

Click to See Complete Forum and Search --> : JavaScript Menu frame problem


chrismitchell
Jul 12th, 2001, 06:11 AM
I have a problem with a JavaScript menu that I am using for a site I am building. The problem is that I am using a JavaScript menu system that will open up the menu items in the main frame. Please look at the code supplied. Any help that can be given would be grately appreciated. :)
Find below the text cut and pasted into the post (as I am having trouble attaching the file to this thread! :( )


Main
<html>
<head>
<title>Welcome to MMR International</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
#divUpControl{position:absolute; width:320; left:10; top:10; z-index:1; text-align: right}
#divDownControl{position:absolute; width:320; left:10; top:270; z-index:1; text-align: right}
#divContainer{position:absolute; width:320; height:240; overflow:hidden; top:30; left:10; clip:rect(0,320,240,0); visibility:hidden}
#divContent{position:absolute; top:0; left:0}
</style>
<script language="JavaScript">// begin absolutely positioned scrollable area object scripts
// Extension developed by David G. Miles
// Original Scrollable Area code developed by Thomas Brattli
function verifyCompatibleBrowser(){
this.ver=navigator.appVersion
this.dom=document.getElementById?1:0
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
this.ie4=(document.all && !this.dom)?1:0;
this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;

this.ns4=(document.layers && !this.dom)?1:0;
this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
return this
}
bw=new verifyCompatibleBrowser()


var speed=50

var loop, timer

function ConstructObject(obj,nest){
nest=(!nest) ? '':'document.'+nest+'.'
this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight
this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight
this.up=MoveAreaUp;this.down=MoveAreaDown;
this.MoveArea=MoveArea; this.x; this.y;
this.obj = obj + "Object"
eval(this.obj + "=this")
return this
}
function MoveArea(x,y){
this.x=x;this.y=y
this.css.left=this.x
this.css.top=this.y
}

function MoveAreaDown(move){
if(this.y>-this.scrollHeight+objContainer.clipHeight){
this.MoveArea(0,this.y-move)
if(loop) setTimeout(this.obj+".down("+move+")",speed)
}
}
function MoveAreaUp(move){
if(this.y<0){
this.MoveArea(0,this.y-move)
if(loop) setTimeout(this.obj+".up("+move+")",speed)
}
}

function PerformScroll(speed){
if(initialised){
loop=true;
if(speed>0) objScroller.down(speed)
else objScroller.up(speed)
}
}

function CeaseScroll(){
loop=false
if(timer) clearTimeout(timer)
}
var initialised;
function InitialiseScrollableArea(){
objContainer=new ConstructObject('divContainer')
objScroller=new ConstructObject('divContent','divContainer')
objScroller.MoveArea(0,0)
objContainer.css.visibility='visible'
initialised=true;
}
// end absolutely positioned scrollable area object scripts

</script>

<script language="JavaScript" src="JavaScripts/menu.js"></script>
<script language="JavaScript" src="JavaScripts/menuitems.js"></script>

</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="InitialiseScrollableArea()">
<!-- begin absolutely positioned scrollable area object-->
<div id="divUpControl" style="width: 741px; height: 19px; left: 11px; top: 31px">
<a href="javascript:;" onMouseOver="PerformScroll(-7)" onMouseOut="CeaseScroll()">[scroll
up]</a> </div>
<div id="divDownControl" style="width: 741px; height: 19px; left: 10px; top: 490px">
<a href="javascript:;" onMouseOver="PerformScroll(7)" onMouseOut="CeaseScroll()">[scroll
down]</a> </div>
<div id="divContainer" style="width: 742px; height: 439px; top: 51px; visibility: visible; clip: rect(0 700 400 0)">
<div id="divContent" style="overflow: auto; left: 0px; top: 0px">
<p align="center"><b>Welcome to the MMR International Website</b></p>
<p> This Area Scrolls</p>
<p>This Area Scrolls</p>
<p>This Area Scrolls</p>
<p>This Area Scrolls</p>
<p>This Area Scrolls</p>
<p>This Area Scrolls</p>
<p>This Area Scrolls</p>
<p>This Area Scrolls</p>
<p>This Area Scrolls</p>
<p>This Area Scrolls</p>
<p>This Area Scrolls</p>
<p>This Area Scrolls</p>
<p>This Area Scrolls</p>
<p>This Area Scrolls</p>
</div>
</div>
<!-- end absolutely positioned scrollable area object -->
</body>
<script language="JavaScript" src="JavaScripts/loadmenu.js"></script>
</html>

Nav
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>

<SCRIPT LANGUAGE="JavaScript1.2">
<!--

function showMenuInFrame(menuLabel, frameObject, x, y) {
if (!frameObject) {
return;
}
if (window.pageXOffset > -1) {
x = x || frameObject.pageXOffset + 5;
y = y || frameObject.pageYOffset + window.pageY;
} else if (document.body) {
x = x || frameObject.document.body.scrollLeft + 5;
y = y || frameObject.document.body.scrollTop + window.pageY;
}
if (frameObject.showMenu) {
frameObject.showMenu (menuLabel, x, y);
}
}

function mouseTracker(e) {
e = e || window.Event || window.event;
window.pageX = e.pageX || e.clientX;
window.pageY = e.pageY || e.clientY;
}

if (window.captureEvents) {
window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
window.onmousemove = mouseTracker;
} else {
document.onmousemove = mouseTracker;
}

//-->
</SCRIPT>

</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="MM_preloadImages('../buttons/company2.gif')">
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','../buttons/company2.gif',1)" onMouseOver="window.showMenuInFrame('menuIndex', top.mainFrameFrame);"><img name="Image1" border="0" src="../buttons/company1.gif" width="170" height="38"></a><a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image2','','../buttons/people2.gif',1)"><img name="Image2" border="0" src="../buttons/people1.gif" width="170" height="38"></a>
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image3','','../buttons/services2.gif',1)"><img name="Image3" border="0" src="../buttons/services1.gif" width="170" height="38"></a>
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image4','','../buttons/newsletter2.gif',1)"><img name="Image4" border="0" src="../buttons/newsletter1.gif" width="170" height="38"></a>
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image5','','../buttons/mission2.gif',1)"><img name="Image5" border="0" src="../buttons/mission1.gif" width="170" height="38"></a>
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image6','','../buttons/america2.gif',1)"><img name="Image6" border="0" src="../buttons/america1.gif" width="170" height="38"></a>
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image7','','../buttons/request2.gif',1)"><img name="Image7" border="0" src="../buttons/request1.gif" width="170" height="38"></a>
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image8','','../buttons/career2.gif',1)"><img name="Image8" border="0" src="../buttons/career1.gif" width="170" height="38"></a>
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image9','','../buttons/contact2.gif',1)"><img name="Image9" border="0" src="../buttons/contact1.gif" width="170" height="38"></a>
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image10','','../buttons/feedback2.gif',1)"><img name="Image10" border="0" src="../buttons/feedback1.gif" width="170" height="38"></a>
</body>
</html>

sebs
Jul 12th, 2001, 10:44 AM
what is exactly the error,
or what cause the error,


it's pretty long to look,

so give us a hint!!

chrismitchell
Jul 12th, 2001, 11:17 AM
The error is that it wont seem to load the menu into the main frame from the nav frame... No error comes up it just doesnt seem to accept it! :( I have not a clue why... I am thinking that I need to add the javascripts for the menu into both pages.... Its just confusing...

scoutt
Jul 12th, 2001, 12:13 PM
well it would be my guess that you have this
<a href="#"

and no target to goto. I think that that # sign loads the same page. could you insert the target page like so

target="main_page"

that is my guess, I maybe wrong

chrismitchell
Jul 12th, 2001, 01:20 PM
Cheers for your help scoutt I will give that a try.

chrismitchell
Jul 17th, 2001, 05:17 AM
Its all working fine now! :)

scoutt
Jul 17th, 2001, 09:52 AM
so that was it huh? cool glad to help.

chrismitchell
Jul 17th, 2001, 10:30 AM
Well it was partially help from what you said matey, also I found that the .js file was corrupted! :) Cheers though! :)