【发布时间】:2011-05-09 06:33:45
【问题描述】:
如何在 nyroModal iFrame 上手动关闭链接?
我尝试使用此代码。但是,它似乎只适用于 v.1
<a href="#" onclick="parent.$.nyroModalRemove(); return false;">Close From Iframe</a>
请帮帮我~ 我是jQuery的新手,不知道如何自定义代码。
【问题讨论】:
如何在 nyroModal iFrame 上手动关闭链接?
我尝试使用此代码。但是,它似乎只适用于 v.1
<a href="#" onclick="parent.$.nyroModalRemove(); return false;">Close From Iframe</a>
请帮帮我~ 我是jQuery的新手,不知道如何自定义代码。
【问题讨论】:
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>
【讨论】:
我有更好的运气用这个以编程方式从 iframe 中关闭 iframe
<a href="#" onclick="parent.$.nmTop().close();">Close From Iframe</a>
【讨论】:
这是我的解决方案,我现在在我的项目中使用它:
var win = window.dialogArguments || opener || parent || top;
win.$('.nyroModalClose').click();
正如你提到的,你可以这样做:
<a href="#" onclick="win.$('.nyroModalClose').click();return false;">Close From Iframe</a>
【讨论】:
我遇到过类似的问题,即 nyromodal 对话框似乎无法正确关闭/打开。 $.nyroModalRemove() 实际上工作正常,class="nyroModalClose" 也是如此。
问题出在 IE(7 和 8)缓存 AJAX 请求上。因此,下次您尝试从 AJAX 请求填充 nyromodal 时,它不会重新提交,而是会尝试重用缓存的请求结果,但因为它已经被 nyroModalRemove() 删除,它只会显示为如果 nyromodal 没有加载。
将&paramx=Math.random() 附加到 AJAX URL 的末尾可解决此问题。
【讨论】: