Auto-Fit iFrame Высота - PullRequest
       9

Auto-Fit iFrame Высота

4 голосов
/ 12 мая 2011

Прямо сейчас у меня есть всплывающее диалоговое окно jQuery UI, которое читает с внешней страницы.Эта страница читается с другого внешнего устройства, на котором есть видео через flowplayer.

Я использую iframe для встраивания видео в первое:

<div id="donkeyVideo">
<iframe id="iframeDonkey" width="100%" height="496" src="../../../../video/donkey-2009-02-23.html" frameBorder="0"></iframe>
</div>

Ширина кажется нормальной с 100%,но высота 100% не работает.Есть ли способ обойти это?

Где и как мне встраивать код, а также идентификаторы.Пожалуйста, кто-нибудь, помогите?

Ответы [ 2 ]

2 голосов
/ 13 мая 2011

Вам придется использовать какой-то JavaScript для динамической настройки высоты iframe, если вы хотите использовать что-то вроде 100%, а не значение в пикселях.

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

Из потерянного кода:

jQuery: Авто Высота iFrame

Обратите внимание, что этот плагин jQuery autoHeight не будет работать с iFrames, получающими доступ к контенту из другого домена или удаленного местоположения, поскольку объект окна, происходящий из другого домена, не может быть доступен из текущего из-за ограничений безопасности JavaScript.

0 голосов
/ 30 декабря 2012

если вы не хотите использовать плагин jquery, вы можете сделать это, просто используя метод, который я объяснил в моем посте на Facebook (https://www.facebook.com/antimatterstudios/posts/10151007211674364)

У вас есть IFrame, для которого вы хотите автоматически установить высоту, потому что у вас есть страница с другого веб-сайта в вашем.

Ну, к сожалению, IFrame не может принять высоту загружаемого контента, и если вы не укажете высоту, он покажет либо высоту по умолчанию, либо высоту вообще не будет. Это раздражает.

У меня есть решение для вас, оно будет работать только на последних, стандартных поддерживающих браузерах, но также работает и в IE8, так что примерно для 99% из вас это идеально.

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

На вашем веб-сайте вам нужен фрагмент javascript, который может «получить сообщение от IFrame», как это

jQuery(document).ready(function(){
    jQuery(window).bind("message",function(e){
        data = e.data || e.originalEvent.data;
        jQuery("iframe.newsletter_view").height(data.height);
    });
});

в свой контент IFrame, добавьте это в самом низу, вероятно, можно просто сделать что-то вроде "$ template. $ Javascript", используя PHP или что-то еще, даже если javascript не находится внутри тега

<script type="text/javascript" src="jquery-1.7.1-min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    parent.postMessage({
        height:$(document.body).height()+50+"px"
    },"*");
});
</script>

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

если вы сделаете это, при загрузке iframe он отправит сигнал обратно в родительское окно, которое изменит размер iframe в зависимости от длины содержимого:)

Я уверен, что вы можете понять, как изменить мелочи, но это метод, который я использую

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