2012-03-08 2 views
-1

Вот мой код внутри функции JQuery:FancyBox содержание IFrame не отображается с помощью функции 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

Попробуйте использовать другую страницу, а не Google. Я верю, что я тестировал один и тот же код, и Google не хотел, чтобы вы его забрали. Возможно, я ошибаюсь, дайте ему попробовать –

+0

Я пробовал разные URL-адреса, это, похоже, не имеет значения, что я использую, он не загружает содержимое iframe. – Daniel

+0

Какую версию fancybox вы используете? –

ответ

-1

Я нашел решение, я не мог заставить fancybox работать, поэтому я сделал jquery'd.

я заменил этот код:

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(); 

Я понимаю, что это хромой хак, но это работает.

-2

Google и другие хорошо известные веб-страницы (facebook, yahoo и т. Д.) В основном используют заголовок ответа X-Frame, чтобы избежать атак с щелчком (что может произойти при открытии в iframe). Google добавил эту опцию также из-за изменений в своих программных программах AdSense.

Проверьте следующие ссылки для получения дополнительной информации:

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

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

Вы могли бы открыть другие страницы вашего собственного домена, хотя.

+0

он не работает независимо от того, какую область я использую. – Daniel

+0

для людей, которые отказались от этого: пожалуйста, подтвердите свое несоответствие и дайте комментарий. – JFK

Смежные вопросы