[英]Open fancybox(iframe) as a child?
我希望,如果可能的话,使用iframe打开一个fancybox作为父母的孩子。
是否可以打开iframe(使用fancybox构建)并使浏览器相信我已经使用window.open打开它,以便window.close()
或window.opener.location.reload()
等函数仍然可以工作?
fancybox代码很简单:
$("#custom_alert").fancybox({
'width' : w,
'height' : h,
'autoScale' : false,
'transitionIn' : 'none',
'transitionOut' : 'none',
'type' : 'iframe',
//'scrolling' : 'no'
}).trigger('click');
编辑:我不能使用如下功能:
function closePopup(){
window.close();
if(parent.jQuery().fancybox) {
parent.jQuery.fancybox.close();
}
}
我必须使用window.close()函数。
我的问题的一个修复也可以告诉我为什么我不能重写关闭函数,就像我做的警告或确认。
编辑2:感谢Raohmaru和JFK,看到小提琴工作后,我已经完成了我需要的功能,但是对我来说却是一件奇怪的事情:
工作代码,如果有其他人需要它是:
(function() {
var proxied = window.close;
window.close = function() {
if(parent.jQuery().fancybox) {
parent.jQuery.fancybox.close();
}
else
return proxied.apply(this, arguments);
};
})();
这适用于fancybox和window.open情况。
我的问题是:我在索引中包含一些.js文件:
overwrites
fancybox pack
general scripts
如果我把这个函数放在一般脚本中,它可以很好地工作,但如果我把它放在覆盖js(它应该在哪里)它不起作用(没有控制台错误,没有任何反应)。 我试过在包含上交换位置,但没有运气。
这就是我无法从头开始工作的原因,因为我总是把它包含在覆盖.js中。
你可以做的是验证如果页面已在fancybox中打开并执行正确的fancybox方法,否则只需使用常规的javascript方法(即window.close()
)
话虽如此,在打开的页面内(通过window.open()
或fancybox)你可能有一个关闭它的功能
function closePopup(){
window.close();
}
与关闭按钮/链接相关联
<a href="javascript:;" onclick="closePopup()" >Close Window</a>
肯定会关闭弹出窗口但不关闭fancybox,因此您可以添加以下内容:
function closePopup(){
window.close();
if(parent.jQuery().fancybox) {
parent.jQuery.fancybox.close();
}
}
这将适用于弹出窗口或fancybox。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.