Tengo la siguiente situación.JavaScript: cambiar el atributo src de una etiqueta de inserción
Muestro al usuario algunos archivos de audio del servidor. El usuario hace clic en uno, luego en el archivo seleccionado se ejecuta con la carpeta y el archivo seleccionados. Lo que hace la función es cambiar la fuente del objeto incrustado. Entonces, de alguna manera, es una vista previa del archivo seleccionado antes de aceptarlo y guardar la elección del usuario. A visual aid.
HTML
<embed src="/resources/audio/_webbook_0001/embed_test.mp3" type="audio/mpeg" id="audio_file">
JavaScript
function onFileSelected(file, directory) {
jQuery('embed#audio_file').attr('src', '/resources/audio/'+directory+'/'+file);
};
Ahora, esto funciona bien en Firefox, Safari y Chrome, pero simplemente se niegan a cambiar la fuente, independientemente del sistema operativo.
jQuery encuentra el objeto (jQuery.size() devuelve 1), ejecuta el código, pero no cambia en el código HTML.
¿Por qué Safari me impide cambiar la fuente <embed>
y cómo puedo evitar esto?
lo he intentado, pero no funcionó de alguna manera. Agregó la nueva etiqueta de inserción, pero no eliminó la anterior. Estoy pensando en usar una variación de este con un iframe, pero esa no es una solución muy elegante. – Mike
Tuve un problema similar y esto funcionó para mí. ¡Gracias! – petejamd
Mi problema era que programáticamente cambiar el src y llamar a play() todavía causaba que se reprodujera el src original. Siguiendo este consejo, ahora elimino y vuelvo a agregar el elemento de inserción y el sonido se reproduce correctamente. Gracias – Scottm