blander: div an die Stelle eines Objekts im iFrame setzen

Hallo zusammen

meine Seite zeigt ein iframe in diesem Linksammlungen angezeigt werden.

Und zu manchen Links gibt es Zusatzinformationen die in einem div zum rauskopieren angezeigt werden sollen. Da aber das div gerne breiter sein kann als der Inhalt des iframes, dessen Größer am Inhalt angepasst wird, wird dieses auf der Elternseite angezeigt.

Und ist es ja aber so, daß wenn im iframe gescrollt wurde, sich das objekt an einer anderen stelle befindet. Also würde ich gerne wissen, wie weit in diesem iframe gescrollt wurde, oder gar gleich an welcher Stelle jetzt das Objekt/der Link sitzt.

Danke gruß Andreas

  1. Innerhalb des iframes hast Du in vernünftigen Browsern die window.pageYOffset-Eigenschaft und im IE die document.documentElement.scrollTop-Eigenschaft. Wenn beide nicht funktionieren sollten, befindest Du Dich im Quirks-Mode und solltest Dich zum Schämen in die Ecke stellen.

    Gruß, LX

    --
    RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.
    1. Hallo

      ok die Variante window.pageYOffset funktioniert im firefox und dafür aber die Variante document.documentElement.scrollTop nicht. Ich rufe die Funktion mit showinfo(this) auf und schreibe dann Link.scrollTop und dabei kommt immer 0 raus.

      Und dann bräuchte ich ja aber auch noch die Position des Objekts und bekomme mit offsetTop immer nur 11 raus. Wahrscheinlich weil die Links durch Tabellen-Zellen getrennt sind.

      Danke gruß Andreas

      1. ok die Variante window.pageYOffset funktioniert im firefox und dafür aber die Variante document.documentElement.scrollTop nicht. Ich rufe die Funktion mit showinfo(this) auf und schreibe dann Link.scrollTop und dabei kommt immer 0 raus.

        Dann machst du etwas falsch.

        Und dann bräuchte ich ja aber auch noch die Position des Objekts und bekomme mit offsetTop immer nur 11 raus. Wahrscheinlich weil die Links durch Tabellen-Zellen getrennt sind.

        Wahrscheinlich - hast du mal eine Seite gesucht, die erläutert wie man die Position eines Elementes ermitteln kann?

        Ich könnte jetzt noch mehr Vermutungen und Spekulationen aufstellen, einfacher wäre es aber, du gibst mehr Preis von dem was du konkret tust.

        Struppi.

        1. Hallo

          ich blende das Objekt mit klick auf den Link wie folgt ein:

          function ShowInfo(Link)  
          {  
          	var LinkTop = Link.offsetParent.offsetTop + Link.offsetTop  
          	var LinkLeft = Link.offsetParent.offsetLeft + Link.offsetLeft  
          	top.document.getElementById("Informationen").style.left = LinkLeft + top.document.getElementById("Bereich").offsetLeft + 30 + "px"  
          	top.document.getElementById("Informationen").style.top = LinkTop + top.document.getElementById("Datenbereich").offsetTop + top.document.getElementById("TRKennung").offsetHeight + 30 + "px"  
          	top.document.getElementById("Informationen").innerHTML = Link.title  
          	top.document.getElementById("Informationen").style.visibility = "visible"  
          	top.document.getElementById("Informationen").focus()  
          }  
          
          

          und so bekomme ich auch die Position des Links heraus. Wie Links untereinander in Tabellen geschrieben werden muß ich bestimmt nicht zeigen. Es fehlt mir jetzt ja nur noch die Angabe wie weit gescrollt wurde. Und egal schreibe ich Link.scrollTop oder Link.offsetParent.scrollTop, alert gibt immer 0 aus.

          Danke gruß Andreas

          1. Jo wahnsinn bekomme ich Hilfeleistung.

            Und dann hab ich mirs selber gelöst. Denn ich setze das div jetzt einfach an die Position meines Maus-Cursors. Und das funktioniert.

            Vielleicht klappts ja beim nächsten Mail besser. Vielleicht hab ich ja mehr Glück.

            Also bis dann Gruß Andreas

  2. Hi,

    Und zu manchen Links gibt es Zusatzinformationen die in einem div zum rauskopieren angezeigt werden sollen. Da aber das div gerne breiter sein kann als der Inhalt des iframes, dessen Größer am Inhalt angepasst wird, wird dieses auf der Elternseite angezeigt.

    Daraus ist zu schließen, daß der iframe-Inhalt auf der selben Domain zu finden ist wie die Rahmenseite (sonst wäre das mit der Größenanpassung m.W. nicht möglich).
    Muß es denn ein iframe sein? Kannst Du den iframe-Inhalt nicht in ein (scrollbares) Element der Rahmenseite direkt einbauen?

    Wenn kein iframe mehr im Spiel wäre: das anzuzeigende div in das (relativ positionierte) parent-Element des Links einhängen und dann absolut positionieren.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.