как сделать тесную ссылку из nyroModal iframe (V2) - PullRequest
2 голосов
/ 09 мая 2011

Как сделать вручную закрыть ссылку на nyroModal iFrame?

Я пытаюсь использовать этот код. но, похоже, только для v.1

<a href="#" onclick="parent.$.nyroModalRemove(); return false;">Close From Iframe</a>

Помогите мне, пожалуйста ~ Я очень новичок в jQuery, не знаю, как настроить код.

Ответы [ 4 ]

3 голосов
/ 09 мая 2011

У nyromodal есть функция по умолчанию, чтобы искать класс (nyroModalClose), и если у элемента есть этот класс, используйте его как близкую ссылку.

Так вместо:

<a href="#" onclick="parent.$.nyroModalRemove(); return false;">Close From Iframe</a>

Попробуйте:

<a href="#" class="nyroModalClose">Close From Iframe</a>

Конечно, вы можете выбрать верхнюю модальную и закрыть его с помощью:

<a href="#" onclick="$.nmTop().close();">Close From Iframe</a>
1 голос
/ 30 апреля 2012

Вот мое решение, я использовал его в своем проекте сейчас:

var win = window.dialogArguments || opener || parent || top;
win.$('.nyroModalClose').click();

как вы упомянули, вы можете сделать так:

<a href="#" onclick="win.$('.nyroModalClose').click();return false;">Close From Iframe</a>
1 голос
/ 16 ноября 2011

У меня возникла похожая проблема с диалоговыми окнами в виде nyromodal, которые не закрывались / не открывались должным образом. $.nyroModalRemove() на самом деле работал нормально, как и class="nyroModalClose".

Проблема оказалась в том, что IE (7 и 8) кеширует AJAX-запросы. Итак, в следующий раз, когда вы попытаетесь заполнить nyromodal из AJAX-запроса, он не будет повторен, но попытается повторно использовать результаты кэшированного запроса, но, поскольку он уже был удален nyroModalRemove(), он будет выглядеть как если не загружается ниромодал.

Добавление &paramx=Math.random() в конец URL-адреса AJAX устраняет проблему.

1 голос
/ 25 августа 2011

Мне больше повезло, закрывая iframe внутри iframe программно с этим

 <a href="#" onclick="parent.$.nmTop().close();">Close From Iframe</a>
...