YouTube embeded player: ändern Sie die video-link mit javascript dynamisch
Hier ist ein Teil meines html-code (video-urls markiert mit einem django-template-Sprache Variablen):
<div class="mainPlayer">
<object width="580" height="326">
<param name="movie" value="{{main_video.video_url}}"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="{{main_video.video_url}}" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="326"></embed>
</object>
</div>
- und JS-code (mit jQuery 1.4.x)
$(document).ready(function(){ .....
$(".activeMovie img").live("click", function(){
video_url = ($(this).parent().find('input').val());
$('.mainPlayer').find('param:eq(0)').val(video_url);
$('.mainPlayer').find('embed').attr('src', video_url);
})
...
})
Solch ein Algorithmus funktioniert in ff 3.6.3, aber kein Glück in chrome4 oder opera 10.x., src
und value
geändert werden, aber die youtube-player zeigt noch ein altes video.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, versteckt/zeigt die tag.
Dies startet den ganzen Flash-Film wird in den meisten Browsern.
Anstatt die gerade YouTube-code, den ich verwenden würde swfobject für die cross-Plattform-flash-Einbettung. Also, wenn Sie haben ein video, das sich innerhalb dieses Tags:
Einbetten Ihrer YouTube-video, tun Sie das folgende:
swfobject.embedSWF ("< " >", "myvideo", "580", "326", "9.0.0");
Ändern Sie die video -, tun Sie dies in javascript:
swfobject (was wird gehostet auf google code) kümmert sich um alle cross-plaform-flash-Einbettung Probleme.
Alternativ können Sie die YouTube JavaScript API ändern Sie Ihre video-on-the-fly.
Ich glaube, Sie sollten
window.load
eher alsready
: