2010-10-12 4 views
1

У меня IFRAME с содержанием, как показано ниже,IFrame динамическую высоту изменение ширины на основе внутреннего содержания

<iframe frameborder="no" src="http:localhost/com" id="iframe"> 
    <div style="height:850px;width:700px;">div text </div> 
    </iframe> 

Это показывает IFRAME с Хорями. и вертикальная прокрутка, но не высота на внутреннем содержимом 850 пикселей.

Как я могу изменить высоту iframe dynamiclly, основываясь на внутренней ширине содержимого n. Я использую jquery внутри содержимого.

ИТС Междоменного расслоения плотного виджет поэтому большинство из приведенных ниже ответов метания разрешения Отказано ошибки

Thanxs, Nithish

+0

Возможный дубликат [Как настроить размер iFrame?] (Http://stackoverflow.com/questions/247128/how-to-auto-size-an-iframe) Также проверьте [этот] (http : //stackoverflow.com/questions/153152/resizing-an-iframe-based-on-content). –

+0

Одно междоменное решение описано в моей второй ссылке. Но imho, лучше избавиться от iframe и переключиться на скриптовый тег. –

ответ

2

Nithish,

если вы используете JQuery, то вы можете легко найти (и установить) высоту любого div (в вашем домене - не на внешнем содержимом):

// get the height - in case we want to factor it into the equation below!! 
var myDivHeight = $('iframe').css('height'); 

// set the height 
var docHeight = $(document).css('height'); 
$('iframe').css('height', docHeight); 

надеюсь, что это помогает ...

+0

Привет его виджет javascript внутри этого im, загружая iframe, мы можем разместить виджет в любом месте – Nithish

+0

ну, если у вас есть идентификатор основного содержащего div «виджета», логика все еще остается с незначительными изменениями. т. е. использовать $ ('# idWidgetcontainer'). css ('height', docHeight); вместо. –

+0

no help it throwing permission denied error :( – Nithish

0

Если домены одинаковы для обеих страниц:

parent.document.getElementById("iframe").style.height = $(document).height()+"px"; 

Вы можете использовать JQuery в родительской страницы тоже (если его там имеется).

+0

Привет его виджет javascript внутри этого im загружает iframe мы можем разместить tht-виджет где-нибудь – Nithish

1

Вы должны создать функцию для измерения высоты содержимого и установить высоту IFrame, а затем вызвать функцию изменения размера при загрузке содержимого.

<SCRIPT LANGUAGE="JavaScript"> 
function resizeIframeToFitContent(iframe) { 
    // This function resizes an IFrame object 
    // to fit its content. 
    // The IFrame tag must have a unique ID attribute. 
    iframe.height = document.frames[iframe.id] 
        .document.body.scrollHeight; 
} 
</SCRIPT> 
+1

НЕ используйте атрибут 'language' больше. Это устарело. Кстати, лучше использовать стиль разметки в нижнем регистре. – Sk8erPeter

+1

На самом деле вы должны использовать это при условии, что вы нацеливаете более низкие версии IE. это единственное, что дало мне правильную высоту прокрутки в IE 8> – 2013-08-14 21:57:02

2
var newHeight = $("iframe[id='iframeAutenticador']").contents().find("html").height(); 
$("iframe[id='iframeAutenticador']").height(newHeight); 

использование этого.