Ich habe folgendes Szenario.JavaScript: src-Attribut eines Embed-Tags ändern
Ich zeige dem Benutzer einige Audio-Dateien vom Server. Der Benutzer klickt auf einen, dann wird onFileSelected schließlich mit dem ausgewählten Ordner und der Datei ausgeführt. Die Funktion ändert die Quelle aus dem eingebetteten Objekt. In gewisser Weise ist es eine Vorschau der ausgewählten Datei, bevor Sie sie akzeptieren und die Auswahl des Benutzers speichern. 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);
};
Nun, dies funktioniert in Firefox, aber Safari und Chrome weigern sich einfach, um die Quelle zu ändern, unabhängig vom Betriebssystem.
jQuery findet das Objekt (jQuery.size() gibt 1 zurück), es führt den Code aus, aber keine Änderung im HTML-Code.
Warum verhindert Safari, dass ich die Quelle <embed>
ändere und wie kann ich das umgehen?
ich versucht, aber es hat nicht irgendwie funktionieren. Es hat das neue Embed-Tag angehängt, aber das alte nicht entfernt. Ich denke daran, eine Variation von diesem mit einem iframe zu verwenden, aber das ist keine sehr elegante Lösung. – Mike
Ich hatte ein ähnliches Problem und das hat für mich funktioniert. Vielen Dank! – petejamd
Mein Problem war, dass das Programmieren der src und das Aufrufen von play() immer noch dazu führten, dass der ursprüngliche src abgespielt wurde. Wenn ich diesen Ratschlag befolge, entferne ich das eingebettete Element und füge es wieder hinzu und der Sound wird korrekt abgespielt. Vielen Dank – Scottm