【问题标题】:Fancybox 2 Show ajax result as iframeFancybox 2 将 ajax 结果显示为 iframe
【发布时间】:2012-01-19 05:20:58
【问题描述】:

好的,所以所有其他问题要么与版本 1 而不是版本 2 有关,要么它们只是调用具有 1 个变量的简单文件。基本上我想要做的是获取输入字段并将它们传递给 PHP 文件,而不提交表单并在 Fancybox 中显示 html 回显。

在 1.34 版本中,您使用了 $.fancybox.showActivity。但这不是第 2 版中的选项。

所以我尝试了以下方法:

$.ajax({ 
         url: "exec/preview.php",  
         data: $('#campaignform').serialize(),  
         dataType: "html",
         success: function(data){
            $.fancybox({
                               'content' : data,
                               'type' : 'iframe'
                            });
        }   
}); 

但我得到了在此服务器上找不到请求的 URL /[object Object]。

我尝试将类型设置为内联。它所做的一切就像它提交表单一样。这是实际发布活动之前的预览。

将 SUCCESS 函数改为:

success: function(data){
    $.fancybox(data,{
        'type' : 'iframe'
    });
}

在 iframe 的 URL 中附加所有返回的数据。

有什么想法吗?

【问题讨论】:

    标签: jquery ajax fancybox


    【解决方案1】:

    我摆弄了这个,这很棘手,因为 FancyBox2 没有任何文档。

    我认为这个(ajax 版本)应该可以工作:

    $("#your_form_id").submit(function() {
        $.fancybox({
            padding         : 0,
            autoSize        : true,
            minHeight       : 10,
            fitToView       : false,
            arrows          : false,
            href            : $(this).attr("action"), //Your form must have an action.
            type            : 'ajax',
            ajax            : {
                    type    : "GET",
                    cache   : false,
                    data    : $(this).serializeArray(),
            },
            scrolling       : 'no',
            transitionIn    : 'none',
            transitionOut   : 'none'
        })
        return false;
    });
    

    【讨论】:

    • 谢谢芝诺。现在唯一的问题是,当它加载内容时,如果我单击 X 关闭(右上角),关闭按钮会消失,但 fancybox 不会关闭。如果我在幻想框外单击,它会消失,但屏幕保持昏暗。有什么想法吗?
    • 对不起...刚刚注意到了:(这不应该发生。如果你给我一个测试页,我可以看看。
    • 访问 marketing.wdctravel.com 并使用 support@worlddiscoveryclub.com 和 mc101005 登录。点击广告系列,然后点击新广告系列。逐步完成活动向导并在最后一步按预览。这会在 I 框架中调用 Ajax,但您无法关闭花哨的框
    • 这与 Fancybox 无关。您包含 2 个版本的 jquery.easing 插件,并且可能您不包含来自 gsgd.co.uk/sandbox/jquery/easing 的 jquery.easing.compatibility.js。您还在那里包含了一些重复的脚本。
    • 如果这不起作用,您也可以尝试不使用缓动功能。将取消一些花哨的动画,但它会起作用。
    【解决方案2】:

    看看这个:http://fancybox.net/blog#tip5

    向下滚动一点,您会看到与简单验证示例中想要做的完全相同的事情。

    【讨论】:

    • 请注意我使用的是 Fancybox 2 而不是 Fancybox 1
    • 使用fancybox.net/blog/#tip5 的示例会导致站点尝试在同一页面上加载更多的javascript 和标题信息。它不会将其作为 iframe 加载到 fancybox 中。强制类型为 iframe 会导致 iframe 的 SRC 将所有 HTML 附加到它。
    • 这对使用 FancyBox 2 的我来说效果很好,特别是技巧 #5 的最后一部分:“简单验证;使用 Ajax 提交数据并显示响应”
    猜你喜欢
    • 2014-12-26
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    相关资源
    最近更新 更多