Tengo un video de youtube embebido que quiero que se aplique la API de YouTube. Agrego el parámetro url usando jQuery de la siguiente manera (demo):Habilitar la API de YouTube en el reproductor existente
$(document).ready(function(){
var obj = $('object');
obj.find('embed').attr('src', function(i,s){return s+'&enablejsapi=1&version=3'})
obj.find('param[name=movie]').attr('value', function(i,v){return v+'&enablejsapi=1&version=3'})
$('.play').click(function(){
obj.find('embed')[0].playVideo();
});
$('.pause').click(function(){
obj.find('embed')[0].pauseVideo();
})
});
Este método funciona muy bien en Firefox, pero no del todo en el IE o Chrome (no estoy seguro acerca de otros navegadores). Entonces mi pregunta es ¿cómo modifico esto para que la API funcione en otros navegadores? ¿Tendría que eliminar completamente el objeto y reemplazarlo usando SWFObject?
Nota: El código de inserción es directamente de YouTube.
Actualización: Me di cuenta de si quito el objeto, añadir los parámetros de URL a continuación, añadir el objeto de nuevo, ahora puedo conseguir que funcione en Chrome, pero todavía no IE (updated demo).
Addendum: ¿Por qué la API de YouTube no funciona cuando el objeto/inserción ya tiene el código de habilitación dentro de él? Estoy tratando de evitar que SWFObject sea una dependencia.
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="385">
<param name="movie" value="http://www.youtube.com/v/2Qj8PhxSnhg&hl=en_US&fs=1&enablejsapi=1&version=3"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/2Qj8PhxSnhg&hl=en_US&fs=1&enablejsapi=1&version=3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed>
</object>
El parece que el problema es que Chrome e IE no actualizan la API/incrustación de la API para el elemento cuando se cambia el atributo src. El código funciona si agrega las cadenas de consulta directamente en el código. ¿Su sitio requiere que se agregue dinámicamente? – aolde
@Manticore: no es un requisito, estoy tratando de modificar un complemento. El código/enlace de video es agregado por el usuario en una lista, así que estaba tratando de determinar la forma más fácil de hacerlo funcionar sin establecer ninguna regla como no insertar etiquetas. – Mottie
Tuve el mismo problema e IE comenzó a comportarse de forma adecuada después de agregar el atributo classid = "clsid: D27CDB6E-AE6D-11cf-96B8-444553540000" que SWFObject agrega. – kamens