关闭jQuery fancybox不起作用

时间:2015-07-23 09:29:22

标签: jquery fancybox

我正在使用jQuery fancybox v2,我在实现关闭fancybox弹出窗口的链接时遇到问题。

我有2页:

  • page.html(包含打开fancybox弹出窗口的链接。)
  • popup.html(包含fancybox弹出窗口的内容。)

page.html的来源:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>
    <script type="text/javascript" src="/js/jquery.min.js"></script>
    <script type="text/javascript" src="/js/jquery-ui.js"></script>
    <script type="text/javascript" src="/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
    <link rel="stylesheet" type="text/css" href="/fancybox/source/jquery.fancybox.css?v=2.1.5" media="screen" />
    <script type="text/javascript">
    $(document).ready(function() {
        $(".fancyboxpopup").fancybox({
            iframe: {
                preload: false
            },
            scrolling: 'yes',
            padding: 20,
            width: 800,
            height: 800,
            maxWidth: 1000,
            maxHeight: 1000,
            fitToView: false,
            width: '80%',
            height: '100%',
            autoSize: false,
            closeClick: false,
            openEffect: 'none',
            closeEffect: 'none'
        });
    });
    </script>
</head>

<body>
    <div>
        <a class="fancyboxpopup" href="popup.html" data-fancybox-type="iframe">open the popup</a>
    </div>
</body>

</html>

在fancybox弹出窗口中,我希望有一个关闭链接,可以执行一些javascript(修改page.html上的某些内容)并在单击时关闭弹出窗口。 popup.html的来源:

<html>

<head>
    <script type="text/javascript" src="/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
    <script type="text/javascript">
    function closePopup() {
        // do something on parent (page.html)
        // ...
        // close the current popup window 
        $.fancybox.close();
    }
    </script>
</head>

<body>
    <a href="#" onClick="closePopup()">Close popup window</a>
</body>

</html>

根据您使用的fancybox API&#34; $。fancybox.close()&#34;关闭弹出窗口。不幸的是,如果我点击链接,没有任何反应。似乎无法找到 $ .fancybox 。 我也试过&#34; document.parent。$。fancybox.close()&#34;这也不起作用。

知道我在这里可能做错了吗?

1 个答案:

答案 0 :(得分:0)

首先:在您的标记中,您链接到map.html,而不是popup.html 其次,请尝试window.parent.$.fancybox.close()