Вопрос по jquery – jQuery и Colorbox: как автоматически установить высоту и ширину iframe colorbox

5

Я скачала последнюю версиюColorbox JQuery плагин, Теперь я установил истинный цвет для iframe и inline. моя проблема colorbox (лайтбокс) не установлен автоматически высота / ширина формы внешней страницы. как это исправить? Есть способ для этого?

МОЯ функция colorbox:

<script>
$(document).ready(function(){
 $(".iframe").colorbox({inline:true,iframe:true});
</script> 

Спасибо

Ваш Ответ

1   ответ
19

что находится внутри iframe, автоматическое изменение размера не может работать так, как вы ожидаете.

Я делаю это так: установить ширину + высоту по умолчанию при открытии colorbox с этими параметрами:

{ iframe: true, innerWidth: 430, innerHeight: 370, scrolling: false, ... }

Выберите размер, наиболее подходящий для вашего контента: colorbox откроется и загрузит iframe в это поле.At the end of the iframe's html bodyПоместите этот маленький скрипт, который изменяет размеры colorbox изнутри iframe:

$(function(){
    parent.$.colorbox.resize({
        innerWidth:$('body').width(),
        innerHeight:$('body').height()
    });
});

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

И убедитесь, что все изображения внутри этого iframe имеют заданную ширину / высоту или полностью загружены. В противном случае innerWidth / innerHeight даст неправильные значения.

К сожалению, это работает только тогда, когда вы можете изменить источник того, что находится в вашем iFrame. Если вы загружаете что-то, над чем у вас нет контроля, кажется, что единственный вариант - вручную установить высоту / ширину.
Кто-то наконец-то нашел рабочее решение! Спасибо!
Это хороший сценарий. Кроме того, следует понимать, что технически проблема не в том, что ColorBox не знает, что находится в iframe, а в том, что БРАУЗЕР не знает, пока контент не поступит по проводам в DOM.

Похожие вопросы