2015-04-30 2 views
0

J'ai construit un plugin pour Joomla avec fancyBox v2.1.5.Fancybox 2, iframe avec forme, ne fonctionne pas dans IE7

Il fonctionne bien dans tous les navigateurs, sauf dans IE7. Pas un gros problème, mais c'est mon site de portefeuille pour obtenir du travail, donc je veux aussi qu'il fonctionne dans cet ancien navigateur.

J'ai un iframe I l'pop-up avec un formulaire dans un plugin de contact (formulaire de contact réactif), et le formulaire ne s'affiche pas, mais la fonctionnalité google captcha est là.

Le formulaire est là si j'ouvre la page dans une nouvelle fenêtre du navigateur.

J'ai essayé de définir iframe: {preload: false} alors il fonctionne, le formulaire est là, mais alors "Fit To View" pour fancybox ne fonctionne pas dans Opera et IE, la hauteur a mal tourné.

Parfait pour toute aide!

Ceci est mon code Fancybox:

<script type="text/javascript"> 
 
jQuery(window).on('load', function() { 
 
\t \t \t \t new JCaption('img.caption'); 
 
\t \t \t }); 
 
    (function($){ 
 
\t $(document).ready(function(){$('.item-page').find('a:has(img)').addClass('fancyboxlink');$('.fancyboxlink').addClass('hiddenclass'); $('.hiddenclass:first').addClass('firstfancybox');$('a.fancyboxlink').attr('rel','gallery'); 
 
\t $('a.fancyboxlink').fancybox({ \t \t \t \t 
 
    \t \t \t \t \t \t 'type':'iframe', 
 
    \t \t \t \t \t \t scrolling: 'auto', 
 
    \t \t \t \t \t \t fitToView: true, 
 
    \t \t \t \t \t \t autoResize: false, 
 
    \t \t \t \t \t \t centerOnScroll: true, 
 
    \t \t \t \t \t width: 940, 
 
    \t \t \t \t \t height: 'auto', 
 
    \t \t \t \t \t scrollOutside: true, 
 
    \t \t \t \t \t autoCenter: true, 
 
    \t \t \t \t \t titlePossition: 'outside', 
 
    \t \t \t \t \t afterShow: function() { 
 
    \t \t \t \t \t if($('.fancybox-iframe').length > 0) { 
 
    \t \t \t \t \t this.width = $('.fancybox-  iframe').contents().find('html').width(); 
 
    \t \t \t \t \t \t this.height = $('.fancybox-iframe').contents().find('html').height(); 
 
    \t \t \t \t \t $.fancybox.update(); \t 
 
\t \t \t \t \t \t } 
 
    \t \t \t \t \t \t }, 
 
    \t \t \t \t \t \t 'afterClose': function() { 
 
     \t \t \t \t \t $('#fancybox-inner').empty(); 
 
      \t \t \t \t } 
 
     \t \t \t \t \t }); \t \t 
 
\t \t \t \t }); 
 
     \t \t })(jQuery); 
 
    </script>

Répondre

0

J'Infogérance par moi-même pour trouver la solution à ce problème. Avoir à recharger le contenu de la source dans l'iframe, pour IE7.

après Inséré:

titlePossition: 'en dehors',

ce code:

beforeShow: function() { 
 
if($('.fancybox-iframe').length > 0) {   \t \t \t \t \t 
 
if (navigator.appVersion.indexOf('MSIE 7.')!=-1) { 
 
$('.fancybox-iframe').attr('src', $('.fancybox-iframe').attr('src')); 
 
} 
 
} 
 
},

Hope this aide à quelqu'un d'autre avec le même problème.

Bonne journée des travailleurs!

+0

peut-être que ce serait plus facile http://stackoverflow.com/a/14828632/1055987 – JFK