подогнать iframe к высоте содержимого - PullRequest
2 голосов
/ 18 января 2011
        <script language="JavaScript">
        function autoResize(id){
            alert('check');
            var newheight;
            var newwidth;

            if(document.getElementById){
                newheight=document.getElementById(id).contentWindow.document .body.scrollHeight;
                newwidth=document.getElementById(id).contentWindow.document .body.scrollWidth;
            }
            alert(newheight);
            alert(newwidth);
            document.getElementById(id).height= (newheight) + "px";
            document.getElementById(id).width= (newwidth) + "px";
        }
        </script>

HTML:

            <iframe id="faq_iframe" src="http://www.google.com" width="100%" height="200px" scrolling="no" frameborder="0" marginheight="0" onload="javascript: autoResize('faq_iframe');"></iframe>

Вопрос: Я использую iframe для отображения своей страницы. мне нужно подогнать iframe к высоте моей страницы, как мне это сделать.

Я пробовал вышеуказанные коды

я получил эту ошибку через firebug

Permission denied for <http://localhost> to get property Window.document from <http://www.google.co.in>.
[Break On This Error] newheight=document.getEleme...tWindow.document.body.scrollHeight; 

Как сделать, чтобы iframe соответствовал его высоте к высоте моей страницы, указанной в iframe src

Ответы [ 5 ]

2 голосов
/ 18 января 2011

В вашем случае вы не можете.

Для iframe с содержимым, находящимся в одном домене, невозможно прочитать какие-либо свойства, включая ширину и высоту, в документе, в который он вставлен, если этот документ находится в другом домене.

Существует несколько способов достижения междоменной связи между iframe , но он включает документ, в котором живет iframe, является добровольным участником, с активным javascript, чтобы облегчить его.

0 голосов
/ 14 февраля 2012

Попробуйте, вы можете изменить даже тогда, когда вы хотите. В этом примере используется jQuery.

$ ('# iframe'). Live ('mousemove', функция (событие) {

var theFrame = $ (this, parent.document.body);

this.height ($ (document.body) .height () - 350);
});

0 голосов
/ 04 августа 2011

Я тоже с этим боролся. В конце концов я использовал postMessage (HTML5). Посмотрите пример здесь: междоменный iframe resizer?

0 голосов
/ 18 января 2011
function autoResize(id){
   moz=document.getElementById&&!document.all
   mozHeightOffset=20
   document.getElementById(id).height=window.frames[id].document.body.scrollHeight+(moz?mozHeightOffset:0);
}

Этот код будет корректировать высоту iframe в соответствии с его содержимым. вызовите эту функцию при загрузке iframe.

0 голосов
/ 18 января 2011

Вы не можете получить высоту iframe из-за междоменной политики.Для этого создайте прокси на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...