Может ли iframe открыть окно в стиле лайтбокса? - PullRequest
2 голосов
/ 17 июня 2010

Этот вопрос не о том, чтобы высветить iframe внутри лайтбокса; скорее речь идет о iframe на странице, которая может запускать свой собственный блок в стиле Lightbox на странице, которая содержит этого iframe. Я думаю, что это невозможно, потому что iframe содержит содержимое другого URL и любой лайтбокс, который запускает URL, должен вписываться в iframe. Спасибо.

Ответы [ 7 ]

2 голосов
/ 17 июня 2010

Невозможно для <iframe> взаимодействовать с его родительским фреймом, если два фрейма находятся в разных доменах.

1 голос
/ 26 марта 2013

Простой обходной путь, который мне помог, состоял в том, чтобы инициализировать лайтбокс в родительском окне, затем создать пустую ссылку-заполнитель и функцию, которая изменяет ссылку и щелкает ссылку-заполнитель:

В верхнем или нижнем колонтитуле родительского окна:

<script type="text/javascript">
  $(function () {
    $('.lightbox').lightBox();
  });

  function image_preview(url)
  {
     $('#fakebox').attr('href',url);
     $('#fakebox').trigger('click')   
  }
</script>

Где-то в теле родительского окна:

<a href="" class="lightbox" id="fakebox"></a>

Итак, в iframe я вызываю родительскую функцию для запуска fancybox:

<a href="JavaScript:void(0);" class="btn btn-tertiary btn-small" onClick="parent.image_preview('http://static8.depositphotos.com/1007989/1011/i/950/depositphotos_10118078-Grinning-Smiley.jpg')">Preview</a>
1 голос
/ 30 августа 2012

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

Когда вы получаете сообщение из фрейма (возможно, с URL-адресом изображения), вы просто открываете диалоговое окно лайтбокса в своем основном документе.

1 голос
/ 17 июня 2010

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

1 голос
/ 17 июня 2010

Попробуйте посмотреть на fancybox.Я знаю, что поддерживает iframes, и я всегда использую его поверх Lightbox, гораздо более настраиваемый.Я почти уверен, что он может работать с вложенными фреймами, однако я могу ошибаться.Стоит попробовать меньше.

Может отображать изображения, HTML-элементы, SWF-фильмы, Iframes, а также запросы Ajax

В нижней части страницы есть примеры:http://fancybox.net/

1 голос
/ 17 июня 2010

Если оба сайта принадлежат одному и тому же домену, вы можете добавить JS лайтбокса в основной фрейм и вызвать функцию внутри iframe, используя «родительскую функцию»

0 голосов
/ 15 августа 2012

Мы столкнулись с той же проблемой, я думаю, что одним из возможных решений является window.open из iframe.

...