2008-08-29 31 views
8

İçeriğini görüntülemesi ve bir kaydırma çubuğu göstermesi gerekmediğinden, bir iframe boyutuna sahip olmak istiyorum. Her şey mümkün mü?Bir iframe'in dikey alan oluşturması

Herhangi bir geçici çözüm var mı? ihtiyacı mertebe bunu dikey yer kaplar olması hakkında henüz

body { 
    overflow-x: hidden; 
    overflow-y: hidden; 
} 

emin değilim ama rakam değil eğer ben görürsünüz:

cevap

10

Bu onun içeriğin yüksekliğine IFRAME yüksekliğini ayarlamalısınız:

<script type="text/javascript"> 
the_height = document.getElementById('the_iframe').contentWindow.document.body.scrollHeight; 
document.getElementById('the_iframe').height = the_height; 
</script> 

Sen kaydırma çubukları kapatmak için sizin IFRAME için scrolling="no" eklemek isteyebilir.

düzenleme: Hatalar, the_height bildirmeyi unuttunuz.

+4

Çok kullanışlı, şerefe. Aynı kökeni ilke – ConroyP

0

Bu CSS pasajı dikey kaydırma çubuğunu kaldırmak gerekir dışarıda.

0

document.getElementById('the_iframe').contentWindow.document.body.scrollHeight 

IE ve FF hem sorunları vardı W3C DOCTYPE for examples

bkz hattan doğru değeri hesaplamak için yardımcı olacaktır IFRAME kaynak belgeye DOCTYPE deklarasyon ekleme Rendering'e gibi iframe belgesi 'quirks' modunda, DOCTYPE ekleyene kadar belge.

FF/IE/Krom desteği: Chrome ile .scrollHeight çalışmıyor bu yüzden iframe'lerin içeriğine dayalı bir sayfadaki tüm IFRAME yükseklikleri ayarlamak için jQuery kullanarak bir javascript örnekle geldi. NOT: Bu, geçerli alanınızdaki referans sayfaları içindir.

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('iframe').each(function(){ 
      var context = $(this); 
      context.load(function(event){ // attach the onload event to the iframe 
       var body = $(this.contentWindow.document).find('body'); 
       if (body.length > 0 && $(body).find('*').length > 0) { // check if iframe has contents 
        context.height($(body.get(0)).height() + 20); 
       } else { 
        context.hide(); // hide iframes with no contents 
       } 
      }); 
     }); 
    }); 
</script> 
0

geçici çözüm sunucu tarafında ve önişlem kodunu kullanmak değildir.

+2

nedeniyle farklı bir etki alanında iframe farklı şekilde çalışmadığından bahsetmeye değer olabilir. Bağlantıları yeniden düzenleyen özel bir proxy sunucu oluşturmayacaksanız, bu her zaman mümkün değildir. html body ... bir şaka. – ErikE