FancyBox iframe возвращает parent. $ как неопределенный (использование WordPress)

Я пытаюсь закрыть FancyBox из iframe, но parent.$ всегда undefined. Это - мой iframe JavaScript:

 
 

Замена parent.$.fancybox.close(); с alert('clicked'); работает просто великолепно. Я не понимаю почему parent.$ undefined когда iframe находится в том же домене.

Я использую WordPress 2.9.1 с FancyBox для плагина Wordpress.

  • основная страница: //server.local/web/test/index.php
  • страница iframe: //server.local/web/test/wp-content/plugins/wp-test/test.htm

Первым из этих URL является основная страница, второй является iframe страница; server.local мой домашний тестовый сервер.

Какие-либо идеи? Я могу pastebin весь источник, если это было бы полезно.

9
задан Aleksandr 9 February 2010 в 10:09
поделиться

5 ответов

Потратил довольно много часов, пытаясь отладить это и никуда не попал. Поэтому я переключил плагин 'FancyBox for WordPress' с последней версией FancyBox, и он был исправлен. Действительно следовало попробовать это раньше.

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

Спасибо Дагу за указание соответствующего синтаксиса для iframe к родительскому окну jQuery в WordPress.

0
ответ дан 4 December 2019 в 11:04
поделиться

Недавно я нашел структуру, которая очень похожа на джанго. Это называется playframework и вы можете найти его здесь:

http://playframework.org/

Я предлагаю вам посмотреть видео на первой странице.

Еще одна джанго-подобная структура на основе Java - это Spring Roo, но, на мой взгляд, она не совсем готова. В прошлый раз, когда я использовал его, документация практически отсутствовала.

http://www.springsource.org/roo

-121--1554726-

Джанго можно запустить в jvm с помощью jython, дополнительная информация здесь http://docs.djangoproject.com/en/dev/howto/jython/

-121--1554729-

Она не определена, так как WordPress выполняет jQuery в режиме noConflict . Вместо этого используйте:

parent.jQuery.fancybox.close();

noConflict режимов означает, что $ не равен jQuery. Необходимо явным образом использовать jQuery для доступа к тому, что обычно доступно с помощью $ .

7
ответ дан 4 December 2019 в 11:04
поделиться

Это работает для меня;)

<a href="javascript:parent.jQuery.fn.fancybox.close();" >

Спасибо за этот пост, он на самом деле немного помог мне ... Я чувствую себя плохо, потому что это заняло у меня всего несколько минут, и Я ЗНАЮ, как разочаровывает Fancybox для Wordpress !!

1
ответ дан 4 December 2019 в 11:04
поделиться

Здравствуйте, Любой, у кого возникают проблемы с закрытием iFrame Fancy Box при ручной установке Fancy Box в Wordpress 3.0:

Воспользуйтесь этой ссылкой в ​​своем iframe:

<a href="#" onClick="parent.jQuery.fancybox.close();" title="Close window">close fancybox</a>

Это работает:)

0
ответ дан 4 December 2019 в 11:04
поделиться

Ни одно из предложений не сработало для меня. Мне пришлось обойти эту проблему, используя следующий код. Возможно, последняя версия поддерживает подход parent.jQuery.fancybox.close();, но старые версии с этим не работают.

Для существующих сайтов со старыми версиями плагинов/Jquery попробуйте следующее

function close_window()
{
 $("#fancy_outer",window.parent.document).hide();
 $("#fancy_overlay",window.parent.document).hide();
 //window.top.window.$.fancybox.close(); this also does not work :(
}

вы можете объявить и использовать функцию close_window в содержимом Iframe.

1
ответ дан 4 December 2019 в 11:04
поделиться
Другие вопросы по тегам:

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