2010-12-07 5 views
0

J'essaie d'activer fancybox de sorte que lorsqu'un utilisateur clique sur la vignette, la vidéo s'ouvre dans une fenêtre/superposition Fancybox. J'ai le JavaScript + html suivant, tout fonctionne bien sur tous les navigateurs sauf Internet Explorer. Dans Internet Explorer, il va juste à la page youtube contenant la vidéo. Quelqu'un connaît le problème et connaît une solution?Fancybox ne se charge pas dans IE, ignore return false

$('body').delegate('.video .thumbholder a','click', function(){ 
    $.fancybox({ 
      'padding'  : 0, 
      'autoScale'  : false, 
      'transitionIn' : 'none', 
      'transitionOut' : 'none', 
      'title'   : $(this).title, 
      'width'   : 680, 
      'height'  : 495, 
      'href'   : $(this).attr('href').replace(new RegExp("watch\\?v=", "i"), 'v/'), 
      'type'   : 'swf', 
      'swf'   : { 
       'wmode'  : 'transparent', 
       'allowfullscreen' : 'true' 
      } 
     }); 
    return false; 
}); 

Répondre

0

Si quelque chose va mal (une exception est levée) avant votre déclaration return false, le navigateur le lien et naviguer loin, avant d'arriver à voir le message d'erreur. C'est probablement ce qui se passe dans IE.

Coder en dur la propriété href dans les options fancybox et laisser href de l'ancrage réel être javascript:void(0);. De cette façon, vous pouvez voir quelle est l'erreur.

+0

Merci pour la réponse m8. J'ai essayé quelque chose de similaire auparavant, et j'ai essayé votre solution juste pour être sûr. Je ne fonctionne pas et IE7 ne renvoie aucune erreur. Chose est quand je code dur la propriété href ni le fancybox ouvre ni la page youtube. – KaiserSoze

0

Simple.

Mettez ceci avant votre appel $ .fancybox.

event.preventDefault(); 

Ceci empêchera le déclenchement de href.