Mouseover im anderen frame steuern

scanline

Erfahrenes Mitglied
Hallo allesamt
wie steuere ich per JS MouseOvers-Positions in anderen Frames?
im Klartext...
bei Klick auf einen Link in Frame 1 soll sich ein Mouseover (Bildstatus) in einem anderen frame ändern. Ist für ne Sitemap, die gleichzeitig in allen frames die MouseOver-Stellungen richtig stellt.
Gruß
Micha
 
hmm....
was mach ich falsch wenn bei mir der fehler kommt

parent.screenshot ist null oder kein objekt! ??

mein Aufruf lautet:

onMouseOver="parent.screenshot.MM_swapImage('vorschau','','../images/close_d.gif',1)"

Muss ich das irgendwo in das eigentliche Script für das Rollover ergänzen?
 
nach zwischen parent und dem javascript aufruf kommt doch der framename von dem frame in dem das bild ausgetauscht werden soll, oder nicht??

also frame1 heißt "links" und der frame wo das bild geändert werden soll heißt "screenshot"...
sollte dann ja eigentlich funktionieren, oder??

Ich poste heut abend wenn ich zuhause bin mal das ganze frameset und die entsprechenden frames...
 
Also,
wenn ich mit der Maus über einen Link im Frame "unten" gehe, soll ein Bild im Frame "screenshot" geändert werden...

Die Funktion dafür ist (wenns im gleichen Frame ist):
PHP:
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','images/db.jpg',1)">


das javascript im head tag lautet:
PHP:
<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>
in dieser variante funktioniert es allerdings nur wenn das bild im selben frame ist wie der link.

Wenn ich es so mache wie oben beschrieben wäre der funktionsaufruf ja eigentilch
PHP:
<a href="#" onmouseover="parent.screenshot.MM_swapImage('Image1','','images/db.jpg',1)" onmouseout="...">
so funktioniert es aber leider nicht :(

was mache ich falsch, und wieso funktioniert das nicht richtig??
danke!!
 
Definierst du denn auch innerhalb des <head>-Tags des anderen Frames all diese Funktionen?

Mit
PHP:
parent.screenshot.MM_swapImage(...);
greifst du jedenfalls nur auf eine Funktion im anderen Frame zu - ist diese dort nicht deklariert, wird das mit dem Aufrufen dort auch nix werden.

Geist
 

Neue Beiträge

Zurück