我知道这个问题已经被问到,但主要是针对Fancybox 2(而不是3),我发现的唯一答案对我没有帮助。 我的网页有两个框架,一个托管Fancybox图库。到目前为止,当我点击图像时,它们只会在相应的框架中打开,而Id就像图像一样填满整个屏幕。按照这里的答案(Open fancybox 3 into iframe parent)我做了以下代码,但我没有做对。 我忘记了什么吗?我应该在项目的主页面中放置一些代码,那个代码包含两个iframe吗?还有什么我应该做的?
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<link href="jquery.fancybox.min.css" rel="stylesheet">
<script src="jquery.fancybox.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
parent.jQuery.fancybox.getInstance().update();
});
$.fancybox.open([
{
src : 'IMG_3301.JPG',
opts : {
caption : 'First caption',
thumb : 'IMG_3301 - copie.JPG'
}
},
{
src : 'IMG_3302.JPG',
opts : {
caption : 'Second caption',
thumb : 'IMG_3302 - copie.JPG'
}
}
], {
loop : false
});
</script>
</head>
<body>
<a data-fancybox="gallery" href="IMG_3301.JPG">
<img src="IMG_3301 - copie.JPG">
</a>
<a data-fancybox="gallery" href="IMG_3302.JPG">
<img src="IMG_3302 - copie.JPG">
</a>
</body>
</html>
通过使用parent.jQuery.fancybox
,您可以访问父iframe中的fancybox,并且,要在父iframe中启动fancybox,只需组合您的两个片段,如parent.jQuery.fancybox.open(..)
例:
var $links = $(".imglist a");
$links.click(function () {
parent.jQuery.fancybox.open($links, {
// Your custom options
}, $links.index(this));
return false;
});
但是ku zxsw指出