Announcement

Collapse
No announcement yet.

IFrame mit Autohöhe geht nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • IFrame mit Autohöhe geht nicht

    Hallo zusammen,

    ich habe eine Iframe welches sich an die Höhe des Inhalts anpassen soll.
    Das Ganze habe ich auch hinbekommen für den FF. Leider läuft es aber nicht im IE11 und Chrome.

    HTML Code:
    <iframe scrolling="no" frameborder="0" onload="onIFrameIsUpdate()" src="../gaestbuch.php" style="width:600px; border:none;" name="iFrame" id="iFrame"></iframe>
    Dann habe ich folgende Funktion:
    Code:
    function onIFrameIsUpdate() {
    var framefenster = document.getElementById("iFrame");
    		
    framefenster.style.height = '0px';
    framefenster.style.height = framefenster.contentWindow.document.body.scrollHeight + 'px';   
    }
    Wie gesagt im FF gehts. Das Iframe wird nach dem Laden an die Größe des Inhalts angepasst.

    Hat jemand eine Idee?

    Grüße und Danke

  • #2
    http://blogs.system-worx.de/kejr/201...ohenanpassung/
    Christian

    Comment


    • #3
      Hi Christian,

      leider ist die Lösung veraltet. Siehe Kommentare unten auf der Lösungsseite. Es funktioniert nicht mehr mit den neuen Browsern. Das Problem ist da das gleiche wie bei mir :-(

      Comment


      • #4
        Hmmm, versuche das doch mal mit einem Framework wie jQuery. Die ist browserübergreifend. Ev. funktionieren deine Größenanpassungen mit den jQueryfunktionen
        Christian

        Comment


        • #5
          Hallo,

          ich hab was gefunden und hab es so gelösst:

          Code:
          <script type='text/javascript'>
          			function setIframeHeight() {
          			  if(parent.frames.length && document.documentElement && document.documentElement.scrollHeight) {
          				var iframe = parent.document.getElementById('GaestebuchIFrame');
          				iframe.style.height = '0';
          								
          				var position = getPosition(document.getElementById('endeDerSeite'));
          				iframe.style.height = (position.y + $offset) + 'px';
          			  }
          			  
          			  disbaleWaitingDialog();
          			}
          			window.onload = setIframeHeight;
          			
          			function getPosition(element) {
          				var xPosition = 0;
          				var yPosition = 0;
          			  
          				while(element) {
          					xPosition += (element.offsetLeft - element.scrollLeft + element.clientLeft);
          					yPosition += (element.offsetTop - element.scrollTop + element.clientTop);
          					element = element.offsetParent;
          				}
          				return { x: xPosition, y: yPosition };
          			}
          			
          			function disbaleWaitingDialog() {
          				document.getElementById('waitLayer').style.display='none';
          			}	
          		  </script>
          das befindet sich in der iframe Seite. Unten habe ich noch ein Div als Referenzpunkt 'endeDerSeite'
          Der offset wird je nach Browser berechnet.

          Grüße

          Comment


          • #6
            Schön, dass es geht
            Christian

            Comment


            • #7
              Geht aber vermutlich auch nur wenn das IFrame von derselben Domain geladen wird wie der parent. Ansonsten ist eine Kommunikation zwischen IFrame und Parent nur sehr eingeschränkt möglich (ich glaube über die URL kann man irgendwie kommunizieren).

              Comment

              Working...
              X