【问题标题】:Fancybox returns "The requested content cannot be loaded." in FirefoxFancybox 返回“无法加载请求的内容”。在火狐中
【发布时间】:2026-02-07 22:55:02
【问题描述】:

我在使用 Fancybox (v2.1.5) 时遇到问题。我想在生成 pdf 导出时打开一个“请稍等”对话框:

function ShowLoading(token, message) {
        $.fancybox({
            'href': 'path/to/MVC/controller',
            'type': 'ajax',
            'hideOnOverlayClick': false,
            'showCloseButton': false,
            'modal': true,
            'enableEscapeButton': false,
            'closeClick': false,
            'beforeShow': function () {
                $(".popup-loading-message").text(message);
            },
            helpers:
                {
                    overlay: { closeClick: false } 
                }
        });
....
}

href 指向 MVC 控制器方法,它只返回以下内容:

<div class="popup-loading">
    <div class="popup-loading-content">
        <div class="popup-loading-graphics"><i class="fa fa-refresh fa-spin fa-fw"></i></div>
        <div class="popup-loading-message"></div>
    </div>
</div>

所有在 Chrome 或 IE 中都能完美运行,但在 Firefox 中却不行,我得到“无法加载请求的内容”。错误信息。有任何想法吗? 谢谢。

【问题讨论】:

    标签: javascript jquery fancybox-2


    【解决方案1】:

    问题解决了,这就是诀窍:

    function ShowLoading(token, message) {
       setTimeout(function() {
            $.fancybox({
                'href': 'path/to/MVC/controller',
                'type': 'ajax',
                'hideOnOverlayClick': false,
                'showCloseButton': false,
                'modal': true,
                'enableEscapeButton': false,
                'closeClick': false,
                'beforeShow': function () {
                    $(".popup-loading-message").text(message);
                },
                helpers:
                    {
                        overlay: { closeClick: false } 
                    }
            });
        ....
        });
    }
    

    不要问为什么... ;o)

    【讨论】: