2011-02-09 11 views
7

Utilizzo di Fancybox a play youtube videos in a modal box.Fancybox restituisce "Impossibile caricare il contenuto richiesto. Riprova più tardi."

Il mio problema è che continuo a ricevere "Il contenuto richiesto non può essere caricato. Riprova più tardi."

Il dialogo modale è popping up in modo da so lo script è in esecuzione, potrebbe essere un problema con la mia chiamata API ... ecco la mia chiamata:

<script type="text/javascript"> 
$(document).ready(function() { 

      /* This is basic - uses default settings */ 

      $("a.fancybox").fancybox({ 
       'hideOnContentClick': true 
      }); 

      /* This is a non-obtrustive method for youtube videos*/ 

      $("a[rel=fancyvideo]").fancybox({ 
       overlayShow: true, 
       frameWidth:640, 
       frameHeight:360, 
      }); 
     }); 
</script> 

risposta

7

avete <a> s sia con class="fancybox" e rel="fancyvideo"? Se lo fai, legerai Fancybox a questi elementi due volte e Fancybox potrebbe non piacerle. Prova a prendere questo:

$("a.fancybox").fancybox({ 
    'hideOnContentClick': true 
}); 

E vedere cosa succede con solo il secondo sul posto.

UPDATE: Strano. La demo (http://chadly.net/demos/video-lightbox.html) sta producendo HTML diverso dalla tua pagina, la demo crea un <object data=...> ma il tuo crea una cosa <object><embed src="youtube-url">. Stai dicendo:

type: 'swf' 

nel vostro Fancybox vincolante, che è dove la roba <object><embed>...</embed></object> proviene. Tuttavia, lo href punta a un semplice vecchio video di YouTube che visualizza la pagina HTML e che href finisce come attributo src per <embed>. L'URL per incorporare un video di YouTube non è lo stesso della pagina HTML del video e questa è probabilmente la fonte del tuo problema.

provare a sostituire il href che assomiglia a questo:

http://www.youtube.com/watch?v=QmVvgSfdmJQ 

con uno come questo:

http://www.youtube.com/embed/QmVvgSfdmJQ 

La prima è la pagina HTML pianura per YouTube, il secondo è il file SWF embeddable.

UPDATE 2: L'esempio si sta lavorando da è per Fancybox 1.0.0, ma si sta utilizzando 1.3.4, 1.0.0 ha alcuni controlli speciali per YouTube che non sono presenti nelle versioni successive:

//... 
} else if (url.match(/youtube\.com\/watch/i)) { 
//... 

Questo è da 1.0.0 e il codice dopo che else if riscrive l'URL della pagina HTML (ad es http://www.youtube.com/watch?v=QmVvgSfdmJQ) all'URL embeddable SWF più anziani (ad es http://www.youtube.com/v/QmVvgSfdmJQ). Questo problema di versione spiega anche perché la demo stava producendo HTML diverso dal tuo.

Quindi, ci sono alcuni problemi di versione oltre a tutto il resto.

+0

Buona chiamata, sfortunatamente, l'ho già provato. Niente da fare. Non sto usando la stessa classe sul rel al video di YouTube. Rimossa anche la prima chiamata di Fancybox e non cambia nulla. Puoi vedere il sito qui: http://anasmadance.com.s66112.gridserver.com/about/repertoire/ ... fai clic sul primo div grande titolo per espanderlo e poi cerca "guarda il video" – Brian

+0

@Brian : Ho fatto un po 'di giro e ho aggiunto un aggiornamento che potrebbe (o non potrebbe) essere utile. –

+0

Avevi ragione ... mi hai salvato amico! : D – Brian

1

Sembra che il codice potrebbe essere un po 'fuori

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("a[@rel*=fancyvideo]").fancybox({ 
      overlayShow: true, 
      frameWidth:640, 
      frameHeight:360 
     }); 
    }); 
</script> 

http://chadly.net/post/2009/01/29/Lightbox-for-YouTube-Videos.aspx

+0

Purtroppo no, l'autore postato prima di jQuery 1.3 .2 e quindi il codice nel suo post è sbagliato. Prima di aggiornarlo, il codice non funzionava affatto, dopo ho ottenuto la casella modale per apparire ma nessun video. – Brian

1

utilizzare questo esempio non dimenticate href

<a class="fancybox" href="your path for image or other"> 
    <img src="imagepath"> 
</a> 
2

Verificare che sia stato inserito il jquery.fancybox-media.js

<script type="text/javascript" src="jquery.fancybox-media.js?v=1.0.0"></script> 
Problemi correlati