fancybox iframe内容未通过jquery函数显示

时间:2012-03-08 18:46:16

标签: javascript jquery iframe fancybox

这是我在jquery函数中的代码:

$("form").submit(function() {


    if(form.First_Name.value == ""){
        alert("Please fill in your First Name.");
        form.First_Name.focus();
        return false;
    }
    if(form.Last_Name.value == ""){
        alert("Please fill in your Last Name.");
        form.Last_Name.focus();
        return false;
    }
    if(form.Customer_eMail952.value == ""){
        alert("Please fill in your Email.");
        form.Customer_eMail952.focus();
        return false;
    }else{
        if (!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(form.Customer_eMail952.value)) {
            alert("Invalid Email");
            form.Customer_eMail952.focus();
            return false;
        }
    }
    var submittedURL = 'http://www.google.com';
    $.fancybox.open({'href': submittedURL, 'type': 'iframe'});
});

该函数将在没有任何错误的情况下运行,但是当显示iframe时,它不会在其中显示任何内容。使用FireBug它将显示正确的href:

<iframe class="fancybox-iframe" scrolling="auto" frameborder="0" src="http://www.google.com" hspace="0" name="fancybox-frame1331232022953">

我正在使用fancybox 2.0,并且在调用此函数时fancybox已经打开。它是在表单验证后调用的。

为什么iframe没有加载?我做错了什么?

2 个答案:

答案 0 :(得分:-1)

我找到了一个解决方案,我无法让fancybox工作,所以我嘲笑它。

我替换了这段代码:

var submittedURL = 'http://www.google.com';
$.fancybox.open({'href': submittedURL, 'type': 'iframe'});

使用此代码:

$(".fancybox-inner").empty();
$(".fancybox-inner").append('<iframe src="'+submittedURL+'" class="fancybox-iframe" scrolling="auto" frameborder="0" hspace="0" />');
$.fancybox.update();

我意识到这是一个蹩脚的黑客,但它确实有效。

答案 1 :(得分:-2)

谷歌和其他知名网页(脸书,雅虎等)大多使用X-Frame响应标头来避免点击劫持攻击(在iframe中打开时可能会发生)。由于其adSense计划政策的变化,Google也添加了该选项。

请查看以下链接以获取更多信息:

https://stackoverflow.com/a/8808761/1055987

https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header

您可以打开自己域名的其他页面。