2010-12-22 3 views
1

Ich verwende das YouTube-Kanal-Skript jQuery(), um Daten von einem YouTube-Kanal einzuholen. Dann verwende ich einen iFrame auf der Seite, um die Videos anzuzeigen, ohne die Seite zu verlassen. Das einzige Problem ist, dass die URLs, die das Channel-Plugin einzieht, mit meinem iFrame-Konzept nicht ganz funktionieren. Sie laden die gesamte YouTube-Seite statt nur das Video. Ich habe einen Workaround gefunden, bei dem ich die URL im Grunde neu formatiere und sage, dass sie Vollbild anzeigen soll und Autoplay tut, was ich möchte.Eine YouTube-URL mithilfe von jQuery neu formatieren

Die URLs sind derzeit wie

formatiert

http://www.youtube.com/watch?v=xxxxxxxxx&feature=youtube_gdata

und ich brauche sie als

http://www.youtube.com/v/xxxxxxxxx?fs=1&autoplay=1

ich hier ein paar ähnliche Themen gesehen habe neu geschrieben werden auf SO, aber Angesichts meiner begrenzten jQuery- und Regex-Talente konnte ich nichts für meine Zwecke einsetzen.

+0

Ich werde klarstellen, mein Ziel ist es, eine Liste von Videos von einem YouTube-Kanal anzuzeigen, dann verwenden Sie einen einzigen Anzeigebereich (der iFrame), um das Video auf der Seite der aktuellen Website anzuzeigen. – jbwharris

Antwort

0

Sie könnten eine function like this verwenden, um den Wert für die URL vairable v zu erhalten und einfach die URL rekonstruieren. Anstatt die window.location, verwenden Sie nur die zurück YouTube URL

var url = 'http://www.youtube.com/v/' + v + '?fs=1&autoplay=1' 
0

Verwenden Sie das jQuery oEmbed Plugin.

http://code.google.com/p/jquery-oembed/

Dann können Sie gelten nur die iFrame auf ein gewünschtes Element

$("#my-video-div").oembed('youtube url'); 

das Plugin die iFrame für Sie erstellen im Gegensatz zu dynamisch den iframe src instering.

Wenn Sie den Standard-You-Tube-Embed-Code betrachten, bietet es eine andere URL als die normale URL. Dies ist zum Beispiel das, was tatsächlich in den iframe für you tube eingebettet ist.

http://www.youtube.com/v/PoyiR3ob7yk?fs=1&hl=en_US

2

Sie müssen Javascript, nicht jQuery dafür.

var v = "http://www.youtube.com/watch?v=xxxxxxxxx&feature=youtube_gdata".match(/v=(.*)&/)[1]; 
var url = "http://www.youtube.com/v/" + v + "?fs=1&autoplay=1" 
0

Sie wahrscheinlich den Standard-Einbettungscode verwenden sollten ein Video auf Ihrer Seite einbinden: http://www.google.com/support/youtube/bin/answer.py?hl=en&answer=57788

Beispiel:

<object width="1280" height="745"> 
    <param name="movie" value="http://www.youtube.com/v/PoyiR3ob7yk?fs=1&amp;hl=en_US&amp;rel=0"> </param> 
    <param name="allowFullScreen" value="true"></param> 
    <param name="allowscriptaccess" value="always"></param> 
    <embed src="http://www.youtube.com/v/PoyiR3ob7yk?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="1280" height="745"></embed> 
</object> 

Hinweis, auf der YouTube-Website gibt es auch eine Möglichkeit zum Einbetten Verwenden von iframes.