这是我在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没有加载?我做错了什么?
答案 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
您可以打开自己域名的其他页面。