kostenloser Webspace werbefrei: lima-city


iframe - höhe dem inhalt anpassen

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    losebettler1

    losebettler1 hat kostenlosen Webspace.

    hi,
    wie kann ich es machen, das der iframe automatisch so hoch wird wie der inhalt der im iframe angezeigten seite?

    der iframe ist in einer tabelle und in ihm werden über das menü die seiten übergeben die er anzeigen soll.
    nun ist in einer seite mal mehr und mal weniger inhalt und der frame soll automatisch so hoch werden wie der inhalt (damit man nicht innerhalb der tabelle scrollen muss)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Für soetwas eignet sich doch AJAX bestens.
    Du könntest aber natürlich auch folgendermaßen vorgehen:
    Auf der Seite, die aufgerufen wird:
    window.onload = function(){
      iframe = this.parent.document.getElementById('iframe');
      for(var i=0;i<iframe.attributes.length;i++){
        var node = iframe.attributes[i];
        if(node.nodeName == "height"){
          node.nodeValue = this.document.body.scrollHeight;
        }
      }
    }

    Der Code muss in die aufzurufende Seite, weil man von außen keinen Event-Handler setzen darf.

    EDIT: Es funktioniert nicht richtig, aber scrollHeight sollte doch richtig sein, oder ?
    Nimm lieber AJAX:wink:

    Beitrag zuletzt geändert: 24.6.2009 15:04:54 von progger
  4. Autor dieses Themas

    losebettler1

    losebettler1 hat kostenlosen Webspace.

    mit ajax kenn ich mich leider 0 aus, und befor ich diese programmiersprache lerne um dieses problem zu lösen,
    such ich mir lieber einenen umweg :P

    dein script hat bei mir auch nicht funktioniert :-(

    gibt es den keine einfache html lösung?
    die tabelle würde sich ja normal (zum beispiel wen ich die datei mit php include) automatisch vergrößern, nur der iframe will die tabelle nicht aufdrücken ...

    gibts vlt. ne andere möglichkeit als iframe und include um eine seite in die tabelle einzubinden?
  5. Ja, auf den iFrame verzichten! Was willst Du denn damit verbrechen?
  6. Autor dieses Themas

    losebettler1

    losebettler1 hat kostenlosen Webspace.

    strange schrieb:
    Ja, auf den iFrame verzichten! Was willst Du denn damit verbrechen?


    und wie soll ich sonst die unterseiten einbinden?
    mit include kann ich in den eingebundenen seiten keine get/post formulare mehr ausführen...
  7. e********l

    Kannst du sehr wohl machen. Du musst dann halt ganz traditionell die gesamte Seite neu laden lassen.
  8. Autor dieses Themas

    losebettler1

    losebettler1 hat kostenlosen Webspace.

    evil-devil schrieb:
    Kannst du sehr wohl machen. Du musst dann halt ganz traditionell die gesamte Seite neu laden lassen.


    befor das hier abschweift, ich hab das thema erstellt weil ich es mir einfach machen möchte und nicht bei einer ändernung alle seiten abändern muss!
  9. e********l

    Musst du doch gar nicht?!

    Ich schätze mal du nutzt PHP oder eine andere Scriptsprache die serverseitig die Inhalte erzeugt oder? Dann musst du deinen Code nur entsprechend organisieren und includierst einzelne Inhalte je nach Wunsch um das Endergebnis zu erzeugen.

    Das kann dann so aussehen das du eine Logikdatei und eine Template (HTML) Datei für die Navigation hast. Also strikte Trennung von Logik und Ausgabe und das wird dann von der Hauptlogikdatei entsprechend eingebunden.

    Ich sehe da keine Probleme bei.
  10. Die Variante mit AJAX:
    function update(url,func){
    
      var request;
      
      if(window.XMLHttpRequest){
        request = new XMLHttpRequest;
        if(request.overrideMimeType){
          request.overrideMimeType('text/plain');
        }
      }else if(window.ActiveXObject){
        try{
          request = new ActiveXObject('Msxml2.XMLHTTP');
        }catch(e){
          try{
            request = new ActivXObject('Microsoft.XMLHTTP');
          }catch(e){}
        }
      }
      
      if(!request){
        alert('ERROR');
        return false;
      }
      
      request.onreadystatechange = function(){
        if(request.readyState == 4){
          if(request.status == 200){
            func(this.responseText);
          }
        }
      }
    
      request.open('GET',url,true);
      request.send('');
    }
    
    function out(responseText){
      document.getElementById([ID]).innerHTML = responseText;
    }

    Und jetzt musst du nur noch die Links abändern, damit es etwa so aussieht:
    <a href="javascript:update('[URL]',out);">[TEXT]</a>
  11. iframe, muss nich wirklich sein jeder browser geht anders damit. was im firefox noch gelungen aussieht ist im ie der absolute müll. daher kann ich mich dem includen nur anschließen. manchmal muss man etwas für sein täglich brot etwas tun...

    so long...
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!