Cómo cambiar dinámicamente la longitud de un objeto o iframe en función de la longitud de su contenido

Estoy trabajando en un proyecto donde las páginas web están compuestas por diferentes fragmentos que se cargan dinámicamente con diferentes tipos de objetos. Entonces, por ejemplo, en un punto determinado, una página puede tener 2 fragmentos, uno que muestra un video y otro que muestra texto, y en otro momento la misma página puede mostrar 2 bloques de texto. Los cambios en el contenido dependen de que el usuario lo vea y debido a que el mismo fragmento (definido por y una etiqueta de objeto o un iframe) puede contener videos (mp4, avi, etc.) o texto (pdf, docx, txt, etc.) o imagenes, etc.

El problema que tengo está relacionado con el tamaño del contenido (específicamente la longitud). Tanto las tags de objeto como las de iframe están delimitadas por un cuadro delimitador que necesito cambiar de tamaño según la longitud del contenido. Si el contenido es un PDF de 30 páginas, necesito que las 30 páginas se representen en la página web. No puedo hacer que el usuario se desplace hacia abajo para ver el contenido del PDF, necesito que sea parte de la página web de la mejor manera posible.

Las respuestas que se encuentran aquí parecen proporcionar una posible solución. No sé JQuery pero puedo aprender. Sin embargo, noté que el contenido utilizado en esos ejemplos es siempre una página web. En mi caso, el contenido del iframe puede ser de muchos tipos diferentes y me gustaría saber si JQuery se puede usar para determinar el tamaño de algo que no es una página web. Si no puede, ¿puede alguien sugerir una solución a mi problema? Gracias.

vas a tener que usar jquery o javascript para establecer dinámicamente la altura del iframe,

estos deberían funcionar

// For other good browsers. $('iframe').load(function() { this.style.height = this.contentWindow.document.body.offsetHeight + 'px'; }); // Safari and Opera need a kick-start. for (var i = 0, j = iFrames.length; i < j; i++) { var iSource = iFrames[i].src; iFrames[i].src = ''; iFrames[i].src = iSource; } 

Aquí hay un artículo completo que explica este código.