κάνουν iframe ύψος δυναμική με βάση το περιεχόμενο μέσα- JQUERY / Javascript

Φορτώνω μια ιστοσελίδα aspx σε ένα iframe. Το περιεχόμενο στο Iframe μπορεί να έχει μεγαλύτερο ύψος από το ύψος του iframe's. Το iframe δεν πρέπει να έχει μπάρες κύλισης.

Έχω μια ετικέτα περιτύλιξης div μέσα στο iframe η οποία ουσιαστικά είναι όλο το περιεχόμενο. Έγραψα κάποια jQuery για να κάνω την αλλαγή μεγέθους να συμβεί :

$("#TB_window", window.parent.document).height($("body").height() + 50);

όπου TB_window είναι το div στο οποίο περιέχεται το Iframe.

body - η ετικέτα σώματος του aspx στο iframe.

Αυτό το σενάριο επισυνάπτεται στο περιεχόμενο του iframe. Παίρνω το στοιχείο TB_window από τη σελίδα του γονέα. Ενώ αυτό λειτουργεί μια χαρά στο Chrome, αλλά το TB_window καταρρέει στο Firefox. Είμαι πραγματικά μπερδεμένος/χαμένος για το γιατί συμβαίνει αυτό.

Μπορείτε να ανακτήσετε το ύψος του περιεχομένου του IFRAME's χρησιμοποιώντας: contentWindow.document.body.scrollHeight

Αφού φορτωθεί το IFRAME, μπορείτε στη συνέχεια να αλλάξετε το ύψος κάνοντας τα εξής:

<script type="text/javascript">
  function iframeLoaded() {
      var iFrameID = document.getElementById('idIframe');
      if(iFrameID) {
            // here you can make the height, I delete it first, then I make it again
            iFrameID.height = "";
            iFrameID.height = iFrameID.contentWindow.document.body.scrollHeight + "px";
      }   
  }
</script>   

Στη συνέχεια, στην ετικέτα IFRAME, συνδέετε τον χειριστή ως εξής:

Σχόλια (24)

Μια ελαφρώς βελτιωμένη απάντηση στον Αρίστο...

<script type="text/javascript">
  function resizeIframe(iframe) {
    iframe.height = iframe.contentWindow.document.body.scrollHeight + "px";
  }
</script>  

Στη συνέχεια, δηλώστε στο iframe σας ως εξής:

Σχόλια (11)
$(document).height() // - $('body').offset().top

και/ή

$(window).height()

Δείτε την ερώτηση του Stack Overflow https://stackoverflow.com/questions/806402.

Δοκιμάστε αυτό για να βρείτε το ύψος του σώματος στην jQuery:

if $("body").height()

Δεν έχει τιμή εάν Firebug. Ίσως αυτό να είναι το πρόβλημα.

Σχόλια (2)