2010-12-07 4 views
0

Ich versuche, fancybox zu aktivieren, so dass, wenn ein Benutzer auf das Thumbnail klickt, das Video in einem Fancybox-Fenster/Overlay geöffnet wird. Ich habe das folgende JavaScript + HTML, alles funktioniert gut auf allen Browsern außer Internet Explorer. Im Internet Explorer wird nur die YouTube-Seite mit dem Video angezeigt. Wer kennt das Problem und weiß von einer Lösung?Fancybox lädt nicht in IE und ignoriert 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; 
}); 

Antwort

0

Wenn etwas schief geht (eine Ausnahme ausgelöst wird) vor Ihrer return false Anweisung, wird der Browser den Link folgen und Stelle navigieren, bevor Sie die Fehlermeldung zu sehen bekommen. Dies ist wahrscheinlich, was in IE passiert.

Hard-Code die href Eigenschaft in den fancybox Optionen, und lassen Sie die href des eigentlichen Ankers javascript:void(0); sein. Auf diese Weise können Sie sehen, was der Fehler ist.

+0

Danke für die Antwort m8. Ich habe vorher etwas Ähnliches versucht und habe deine Lösung ausprobiert, um sicher zu sein. Ich arbeite nicht und IE7 gibt keine Fehler zurück. Die Sache ist, wenn ich die href Eigenschaft hart Code noch öffnet die fancybox noch die youtube Seite. – KaiserSoze

0

Einfach.

Setzen Sie dies vor Ihrem $ .fancybox Anruf.

event.preventDefault(); 

Dadurch wird die Auslösung der href gestoppt.