p3dr0: Bilder in einem anderen Frame ändern

hi,

hab mir da was zusammengebastelt... hier mal die wichtigsten codezeilen die ausgeführt werden sollen:

function Set_menu(pic_nr) {
if(pic_nr == 0) {
document.ueber.src = ueber_off.src;
document.aktuelles.src = aktuelles_off.src;
document.service.src = service_off.src;
}
}

dies ist eine funktion, wo je nach parameter bestimmte bilder ausgetauscht werden und dann hab ich noch den fall mit eingebaut, falls alle drei bilder resetet werden sollen, dieser fall wird eigentlich nur von anderen frames ausgeführt.

dieser reset findet immer in den hrefs auf anderen frames statt:

<a href="..." ... onClick="javascript:parent.top.Set_menu(0)">

soweit funzt das script auch aber leider nur im mozilla und netscape, leider ist es auch erforderlich dass es im internet explorer läuft.

im internet explorer bekomm ich immer folgende fehlermeldung:

"Das Objekt unterstützt diese Eigenschaft oder Methode nicht."

Opera:
Event thread: onclick
Error:
name: TypeError
message: Statement on line 1: Expression did not evaluate to a function object: parent.top.Set_menu
Backtrace:
  In unknown script
    parent.top.Set_menu(0);
  At unknown location
    {event handler trampoline}

Mozilla/Netscape:
keine Fehlermeldung und funktioniert wie geplant...

also, kann mir da jemand weiterhelfen wo der fehler ist, da es auch ordnungsgemäß auf dem ie laufen soll.

  1. hi,

    <a href="..." ... onClick="javascript:parent.top.Set_menu(0)">

    parent ist das übergreifende frameset des aktuellen dokumentes, und top die oberste aller frame-instanzen. (der "umweg" über parent ist damit dann auch überflüssig.)

    deine funktion Set_menu müsste also innerhalb des obersten frameset-dokumentes definiert sein - ist sie das?

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. deine funktion Set_menu müsste also innerhalb des obersten frameset-dokumentes definiert sein - ist sie das?

      hier mal den code vom frameset:

      <frameset rows="15,*,15" frameborder="0" framespacing="0" border="0">
        <frame src="detail.php?template=empty" name="blank_top" scrolling="no" marginwidth="0" marginheight="0" noresize frameborder="0">
        <frameset cols="*,1,948,1,*" frameborder="0" framespacing="0" border="0">

      <frame src="detail.php?template=empty" name="blank_left" scrolling="no" marginwidth="0" marginheight="0" noresize frameborder="0">
         <frame src="detail.php?template=border" name="line_left" scrolling="no" marginwidth="0" marginheight="0" noresize frameborder="0">
         <frameset rows="1,148,*,74,1" frameborder="0" framespacing="0" border="0">
          <frame src="detail.php?template=border" name="line_top" scrolling="no" marginwidth="0" marginheight="0" noresize frameborder="0">
          <frame src="detail.php?template=top" name="top" scrolling="no" marginwidth="0" marginheight="0" noresize frameborder="0">
          <frame src="detail.php?template=content" name="content" scrolling="auto" marginwidth="0" marginheight="0" noresize frameborder="0">
          <frame src="detail.php?template=bottom" name="bottom" scrolling="no" marginwidth="0" marginheight="0" noresize frameborder="0">
          <frame src="detail.php?template=border" name="line_bottom" scrolling="no" marginwidth="0" marginheight="0" noresize frameborder="0">
         </frameset>

      <frame src="detail.php?template=border" name="line_right" scrolling="no" marginwidth="0" marginheight="0" noresize frameborder="0">
         <frame src="detail.php?template=empty" name="blank_right" scrolling="no" marginwidth="0" marginheight="0" noresize frameborder="0">
        </frameset>
        <frame src="detail.php?template=empty" name="blank_bottom" scrolling="no" marginwidth="0" marginheight="0" noresize frameborder="0">
       </frameset>

      so, der javascript teil der ausgeführt werden soll ist im frame namens top definiert und der frame namens content, von dort aus soll die funktion aufgerufen werden, sprich content ruft eine funktion in top auf die eine veränderung in top herbeiführt...

      sry, dass ich solange mit der antwort gebraucht hab mein inet war buggy und ich kam selten rein...

      1. hi,

        hier mal den code vom frameset:

        himmel hilf, was zum geier ist das denn?

        willst du jeden sichtbaren pixel innerhalb des browserfensters als eigenen frame darstellen?

        sorry, aber bei solch einer anhäufung von verschachtelten frames ist am konzept sicher _einiges_ fehlerhaft.

        da ist das aktuell zur diskussion stehende problem sicher noch dein kleinstes.

        so, der javascript teil der ausgeführt werden soll ist im frame namens top definiert und der frame namens content, von dort aus soll die funktion aufgerufen werden, sprich content ruft eine funktion in top auf die eine veränderung in top herbeiführt...

        wie ich vorher bereits sagte, ist top in javascript bereits als bezeichner für die alleroberste frame-"ebene" reserviert, siehe auch http://de.selfhtml.org/javascript/objekte/frames.htm#allgemeines.
        davon, jetzt einen deiner "eigenen" frames ebenfalls mit "top" zu benennen, ist deswegen unter allen umständen abzuraten.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."