Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471

Iframe в спойлер

06.04.2017, 07:35. Показов 1526. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане. Подскажите пожалуйста, возможно ли сделать спойлер таким образом, чтобы iframe загружался только при открытии спойлера, а не при загрузке страницы?

Сейчас схема такая:
На исходной странице, подключается класс парсера bbcode и если есть тег [video][/video], в котором есть линк на видео начинает обработку
PHP
1
$param = htmlspecialchars(parent::get_html($tree));
Далее генерирую уникальный ID для спойлера
PHP
1
$mt_rand= mt_rand(1000,10000);
Определяю откуда видео, чтобы подписать спойлер
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if(strpos($param, 'youtube') !== false){
        $nameVideo = 'YouTube';
        }elseif(strpos($param, 'coub') !== false){
        $nameVideo = 'Coub';
        }elseif(strpos($param, 'liveleak') !== false){
        $nameVideo = 'LiveLeak';
        }elseif(strpos($param, 'ok') !== false){
        $nameVideo = 'OK';
        }elseif(strpos($param, 'mail') !== false){
        $nameVideo = 'Mail.Ru';
        }elseif(strpos($param, 'rutube') !== false){
        $nameVideo = 'RuTube';
        }elseif(strpos($param, 'twitter') !== false){
        $nameVideo = 'Twitter';
        }elseif(strpos($param, 'vk') !== false){
        $nameVideo = 'VK';
}
Ну а дальше сам процесс вставки iframe и заключение его в спойлер
PHP/HTML
1
$param = preg_replace('/(http:\/\/|http:\/\/www\.)youtube\.com\/embed\/([a-zA-Z0-9_\-]+(.*))/i','<div class="spoiler"><div class="type"  id="spoiler" onclick="Spoiler('.$mt_rand.')"><span id="infoSpoiler'.$mt_rand.'">[+]</span> Видео с '.$nameVideo.'</div><div  id="spoilerContent'.$mt_rand.'" class="spoilerContent"><iframe src="https://www.youtube.com/embed/$2" '.$embed.' style="border-width:0px;" width="'.$maxwidth.'" height="'.$maxheight.'" allowfullscreen></iframe></div></div>', $param);
ну и
PHP
1
return $param;
На исходной странице есть js для обработки открытия/закрытия спойлера
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function Spoiler(idsp)
{
var displaySpoiler = document.getElementById('spoilerContent'+idsp).style.display;
if(displaySpoiler == ""){var displaySpoiler = 'none';}
if(displaySpoiler == 'none'){
document.getElementById('spoilerContent'+idsp).style.display = 'block';
document.getElementById('infoSpoiler'+idsp).innerHTML = '[-]';
}
if(displaySpoiler == 'block'){
document.getElementById('spoilerContent'+idsp).style.display = 'none';
document.getElementById('infoSpoiler'+idsp).innerHTML = '[+]';
}
 
};
Можно ли это доработать чтобы фреймы грузились только при открытии спойлера?

Добавлено через 17 часов 16 минут
А почему тему перенесли именно в JS? на сколько я понял, для реализации такой опции не обязательно прибегать к JS.

Вот, например, наткнулся на один вариант в инете, правда я не совсем понял в чем идея и как правильно с помощью её реализовать.

Когда я делал блог для форума, я делал следующее:
HTML5
1
<div id="SomeID" style="SomeStyle" data="Some HTML-code or any text"></div>
В обычном состоянии браузер загружает только блок спойлера, что бы в нём не находилось. При клике на него же происходит считывание содержимого атрибута data и, если там есть адреса изображений, видеороликов или чего-то ещё, отправляется запрос на сервер, где они хранятся и они начинают загружаться.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2017, 07:35
Ответы с готовыми решениями:

Не срабатывают события из iframe при перетаскивании в этот iframe в Opera
Есть два фрейма. В первый вкладывается второй. При зажатии кнопки мыши на первом, если передвинуть курсор к второму, то события второго не...

Могу ли я из одного iframe добраться к елментам другого iframe?
День добрый всем! Могу ли я из одного iframe добраться к елментам другого iframe, т.е.: Например есть два ифрейма: &lt;iframe...

Уменьшить размер iframe щелкнув по ссылке внутри iframe
Можно уменьшить размер iframe щелкнув по ссылке внутри iframe? Ситуация: на странице есть ссылка, открывающая модальное окно с iframe...

4
 Аватар для sad67man
2598 / 1502 / 689
Регистрация: 23.08.2015
Сообщений: 3,804
06.04.2017, 12:23
Лучший ответ Сообщение было отмечено MirDj как решение

Решение

MirDj, Можно src спойлера оставить пустым - положить его в аттрибут, а при открытии спойлера, уже подставлять в src.
0
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
06.04.2017, 14:45  [ТС]
sad67man, т.е так же вставлять в спойлер iframe, только с пустым параметром src, а саму ссылку записывать допустим в аттрибут спойлера и потом при клике вытаскивать из него и подставлять в src iframe? А такое сработает? Будет иакфьу загружаться если в него просто добавить параметр src?
0
 Аватар для sad67man
2598 / 1502 / 689
Регистрация: 23.08.2015
Сообщений: 3,804
06.04.2017, 14:59
MirDj, Да, если присваиваете src, то iframe перегружается, даже если вы подставите тоже значение. Такой способ часто используют, что бы просто перегрузить iframe.

Добавлено через 5 минут
MirDj, Еще такой способ с хранением src в атрибуте используют для отложенной загрузке изображений. Пример можно увидеть на ютубе. Картинки подгружаются при скролле.
1
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
07.04.2017, 07:27  [ТС]
sad67man, Спасибо, буду пробовать....

Добавлено через 16 часов 26 минут
sad67man, Еще раз спасибо, всего пара строчек кода и результат достигнут
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.04.2017, 07:27
Помогаю со студенческими работами здесь

Почему не обрабатывается код?<IFRAME src = getsectioninfo.inc id = sectioninfo style = 'POSITION: absolute; VISIBILITY: hidden'></IFRAME>
Приветствую! Столкнулся с такой проблемой. Пишу '&lt;IFRAME src = getsectioninfo.inc id = sectioninfo style = 'POSITION: absolute;...

Возможно ли из iFrame обратитбся к контролу снаружи iFrame?
Имеется страница на которой есть текстбокс и iFrame. Возможно ли из страницы, загруженной в iFrame обратиться к текстбоксу, который...

Передача данных из iFrame в iFrame
Здравствуйте! Такой вопорсик: У меня на странице 2 элемента iFrame. В одном из них находится форма с данными. Как сделать сабмит...

Спойлер
Кто-нибудь подскажет, как в активности сделать спойлер? Для экономии места на экране...

Спойлер на JS
Есть два спойлера: function ShowOrHide(a){var...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru