Как получить высоту iframe с javascript изнутри iframe? Как насчет страниц с несколькими iframe?
Есть ли способ определить высоту и ширину iframe, выполнив script изнутри iframe?
Мне нужно динамически позиционировать некоторые элементы в iframe в соответствии с разной высотой/шириной iframe.
Будет ли какая-либо разница, если на одной странице есть несколько iframe? то есть каждый iframe хочет найти свои собственные размеры.
Приветствуются решения Javascript или jquery.
Спасибо!
<iframe src='http://example.com' width='640' height='480' scrolling='no' frameborder='0' longdesc='http://example.com'></iframe>
Ифраметры должны быть встроены в другие сайты, и, как упоминалось в одном из приведенных ниже ответов, я столкнулся с проблемами разрешения.
Ответы
Ответ 1
Если ваша страница iframes и ее родительская страница подаются из разных доменов (это означает, что вы не можете получить доступ к родительским страницам свойств DOM с страницы iframe), то я думаю, что это так же, как при попытке выработать высоту видового экрана.
Для этого см.:
Или, возможно, это:
Ответ 2
Имейте в виду, что такой код:
var thisIframesHeight = window.parent.$("iframe.itsID").height();
будет только безопасным, если источник окна iframe и parent из одного домена. Если нет, вы получите разрешение на устранение проблем, и вам придется использовать другой подход.
Ответ 3
Каждой <iframe>
потребуется id
, я полагаю. А затем внутри <iframe>
вы ссылаетесь на это следующим образом:
var thisIframesHeight = window.parent.$("iframe#itsID").height();
Ответ 4
может быть немного поздно, так как все остальные ответы старше:-), но... вот мое решение. Протестировано в реальных FF, Chrome и Safari 5.0.
CSS
iframe {border:0; overflow:hidden;}
JavaScript:
$(document).ready(function(){
$("iframe").load( function () {
var c = (this.contentWindow || this.contentDocument);
if (c.document) d = c.document;
$(this).css({
height: $(d).outerHeight(),
width: $(d).outerWidth()
});
});
});
Надеюсь, это поможет любому.
Ответ 5
да, вы можете выполнить функцию родительского окна изнутри фрейма и передать параметры, например:
window.parent.FUNC_NAME(iframe_height,iframe_width)
просто не забудьте определить функцию FUNC_NAME в родительском окне