У меня есть следующий сценарий.
Я показываю пользователю некоторые аудиофайлы с сервера. Пользователь нажимает на один, затем onFileSelected в конечном итоге выполняется как с выбранной папкой, так и с файлом. Что функция делает, так это изменяет источник от встроенного объекта. В некотором смысле, это предварительный просмотр выбранного файла до его принятия и сохранение выбора пользователя. Наглядное пособие .
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>
и как я могу обойти это?