У меня есть следующий сценарий.JavaScript: изменение src-атрибута встраиваемого тега
Я показываю пользователю некоторые аудиофайлы с сервера. Пользователь нажимает на один, а затем onFileSelected в конечном итоге выполняется как с выбранной папкой, так и с файлом. То, что делает функция, это изменение источника из встроенного объекта. Таким образом, это предварительный просмотр выбранного файла, прежде чем принимать его и сохранить выбор пользователя. 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);
};
Теперь, это отлично работает в Firefox, но Safari и Chrome просто отказываются изменить источник, независимо от операционной системы.
jQuery находит объект (jQuery.size() возвращает 1), он выполняет код, но без изменения кода HTML.
Почему Safari не позволяет мне изменить источник <embed>
и как я могу обойти это?
Я пытался, но он не работает так или иначе. Он добавил новый тег embed-tag, но не удалил старый. Я думаю об использовании этого варианта с iframe, но это не очень изящное решение. – Mike
У меня была аналогичная проблема, и это сработало для меня. Благодаря! – petejamd
Моя проблема заключалась в том, что программное изменение src и call play() по-прежнему вызывало воспроизведение оригинального src. Следуя этому совету, теперь я удаляю и снова добавляю элемент embed, и звук воспроизводится правильно. Спасибо – Scottm