Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Динамическое изменение размеров IFRAME

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4

Открыть новую тему     Написать ответ в эту тему

vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://stackoverflow.com/questions/3846132/jquery-get-height-of-iframe-content-when-loaded
 
проблему сам решил
 
Добавлено:

Код:
<iframe id="_frameId" src="{{ paths.theme }}evoluted-directory-listing-script" scrolling="no" style="border: solid 0px #000000;width:100%;height:200px;"></iframe>
<script>
    $('iframe').load(function() {
            setTimeout(iResize, 50);
        // Safari and Opera need a kick-start.
        var iSource = document.getElementById('your-iframe-id').src;
        document.getElementById('_frameId').src = '';
        document.getElementById('_frameId').src = iSource;
    });
    
    function iResize() {
        document.getElementById('_frameId').style.height = document.getElementById('_frameId').contentWindow.document.body.offsetHeight + 'px';
    }
</script>

вот работает

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 04:58 02-05-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
$('iframe').load(function()

не будет работать в jQuery 3.0 и выше.
 
и все можно сделать проще и удобнее

Код:
$('iframe').on('load', function() {
   var $this = $(this), src = $this.attr('src');  
   setTimeout(function() {
      $this.height($this.contents().height());
   }, 50);  
   // Safari and Opera need a kick-start.
   $this.attr('src', '').attr('src', src);  
});

и то, что после // расчитано на старые браузеры (2008 год), я бы выкинул вообще.
 
ps: а по поводу .change, я то думал, что какой то контент будет подгружаться через ajax, а не просто банальная загрузка iframe и больше ничего.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 07:17 02-05-2017 | Исправлено: Mavrikii, 07:29 02-05-2017
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
<iframe id="_frameId" src="{{ paths.theme }}evoluted-directory-listing-script" scrolling="no" style="border: solid 0px #000000;width:100%;height:0px;"></iframe>
<script>
    $('iframe').on('load', function() {
            setTimeout(iResize, 50);
        // Safari and Opera need a kick-start.
        var iSource = document.getElementById('your-iframe-id').src;
        document.getElementById('_frameId').src = '';
        document.getElementById('_frameId').src = iSource;
    });
    
    function iResize() {
        document.getElementById('_frameId').style.height = document.getElementById('_frameId').contentWindow.document.body.offsetHeight + 20 + 'px';
    }
</script>

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

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 12:58 02-05-2017 | Исправлено: vs6262, 13:05 02-05-2017
Kaber



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят, есть вариант отключить у iframe автовоспроизведение у видео? Сейчас видео показываю через тег <video> , но образуется непонятная белая пелена (как на скрине).
   
 
Добавлено:
Точнее тут слишком темное при:
 background-color: #000;
А если сделать background-color: transparent;
То:
 

Всего записей: 1356 | Зарегистр. 14-03-2014 | Отправлено: 08:44 05-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kaber
iframe видео не воспроизводит, воспроизводит содержимое iframe.
а что там и как реализовано - откуда мы знаем?
если содержимое с другого домена - у js нет доступа к нему.
 
ps: чтобы понять что не так - показывайте саму страницу

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 08:53 05-09-2019 | Исправлено: Mavrikii, 09:00 05-09-2019
Kaber



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Видео с этого же домена в локальной папке хостинга.

Всего записей: 1356 | Зарегистр. 14-03-2014 | Отправлено: 09:00 05-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kaber
тогда при чем тут iframe, если вы сами указываете, что нужно его автоматически воспроизводить?
показывайте что за пелена, возможно не понимаете в чем дело.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 09:08 05-09-2019
Kaber



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Ссылка
Посмотрите пожалуйста.

Всего записей: 1356 | Зарегистр. 14-03-2014 | Отправлено: 09:10 05-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kaber
у тега video в all.css стоит полупрозрачность opacity: 0.4;
вопрос не имеет никакого отношения к данной теме.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 09:12 05-09-2019 | Исправлено: Mavrikii, 09:13 05-09-2019
Kaber



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
В очередной раз большое спасибо.

Всего записей: 1356 | Зарегистр. 14-03-2014 | Отправлено: 09:20 05-09-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4

Компьютерный форум Ru.Board » Интернет » Web-программирование » Динамическое изменение размеров IFRAME


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru