Klikken op een rollover plaatje én meerdere frames tegelijk vervangen?

  • Onderwerp starter Onderwerp starter Noë
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Noë

Gebruiker
Lid geworden
6 jun 2005
Berichten
23
Goedendag!

Ik heb het volgende probleem:
In mijn frameset wilde ik twee frames tegelijk vervangen als er op een link geklikt wordt, en ik wilde rollover buttons. Dat is als volgt gebeurd:

in de HEAD:
HTML:
<script type="text/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.01
  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 && d.getElementById) x=d.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];}
}

function verander_frames()
{
parent.leftFrame.location="fotoalbum/menu_photo.html";
parent.mainFrame.location="fotoalbum/index.html";
}
//-->
</script>

en in de BODY:
HTML:
<body onload="MM_preloadImages('buttons_light/fotoalbum2.jpg')">

<a href="javascript:verander_frames()" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('links','','buttons_light/fotoalbum2.jpg',1)"><img src="buttons_light/fotoalbum.jpg" name="fotoalbum" width="145" height="30" border="0" id="fotoalbum" /></a>

Echter: het scriptje om de frames te vervangen werkte alleen als ik het rollover gedeelte uit de link weg haalde, zoals hier:
HTML:
<a href="javascript:verander_frames()"><img src="buttons_light/fotoalbum.jpg" name="fotoalbum" width="145" height="30" border="0" id="fotoalbum" /></a>

Nu worden de frames dus vervangen als ik op het knopje klik, maar het knopje is geen rollover meer.
Is er een mogelijkheid om het knopje rollover te houden, en ook te zorgen dat dit scriptje om meerdere frames te vervangen werkt?

Groetjes,
Marleen
 
Zoiets misschien:

HTML:
<a onmouseup="verander_frames()" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('links','','buttons_light/fotoalbum2.jpg',1)"><img src="buttons_light/fotoalbum.jpg" name="fotoalbum" width="145" height="30" border="0" id="fotoalbum" /></a>
 
Dat heb ik geprobeerd, maar nu doet 'ie iets raars: zodra je met de muis op fotoalbum gaat staan verandert het plaatje bóven het plaatje dat vervangen moet worden door de rollover, met het plaatje dat als rollover image bedoeld is voor die daar onder :S

Zie hier: als je op fotoalbum gaat staan met de muis, verandert "moet je zien" ineens in de rollover van fotoalbum:
http://www.denaaldindehooiberg.nl/light/testmenu.html

Groetjes
Marleen.
 
Laatst bewerkt:
Dat komt omdat er per ongeluk links in staat als verwijzing naar de afbeelding die moet worden vervangen, dit werkt beter:

HTML:
<a onmouseup="verander_frames()" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('fotoalbum','','buttons_light/fotoalbum2.jpg',1)"><img src="buttons_light/fotoalbum.jpg" name="fotoalbum" width="145" height="30" border="0" id="fotoalbum" /></a>
 
Dat kan met javascript en wel met deze code:

HTML:
parent.framewindow.location = "url van de pagina"

Hierbij verander je "framewindow" in de naam van je frame, en voeg je achter location de URL van je pagina. Om er 2 tegelijk te veranderen, kun je deze code rustig herhalen:

HTML:
<button onmouseover="parent.framewindow.location='url'; parent.framewindow.location='url'">

Met een ";" kun je de 1e dus afschijden van de 2e.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan