SetAttribute и video.src для изменения источника видеотеки, не работающего в IE9
Я буквально прочитал каждый поток stackoverflow относительно изменения источника видеотеки динамически с помощью javascript в IE9, включая полезные, но не согласованные сообщения здесь и здесь, но чувствую, что есть другое решение. Вот основной пример того, что я пытаюсь сделать:
var video = document.getElementById('video');
//now, use either of the lines of code below to change source dynamically
video.src = "nameOfVideo";
//or use...
video.setAttribute("src", "nameOfVideo");
Обе эти строки кода ненавидят Internet Explorer, особенно потому, что src наиболее определенно изменяется после проверки с помощью простого атрибута video.getAttribute, хотя IE фактически ничего не делает для переключения видео.
Да, есть утверждения, что с IE вы должны иметь src, указанный в HTML, чтобы изменить их после загрузки страницы, НО я определенно нашел поток в stackoverflow, который предложил решение с помощью простого JavaScript. (К моему разочарованию, я больше не могу найти поток, который сделал это... и я искал везде, поверьте мне).
При всем том, если кто-то может предоставить решение БЕЗ использования размещения всего видео src в HTML и вместо этого, динамически настраивая/создавая src с использованием JavaScript, как показано выше, я был бы чрезвычайно благодарен.
(Или, если вы могли бы указать мне в направлении "недостающего" потока переполнения, который проверяет, существует ли атрибут в IE, а затем каким-то образом установите src через javascript, это также будет оценено).
Ответы
Ответ 1
Отличные новости, я нашел истинное решение для переключения/изменения видео в тегах HTML5 через JavaScript без использования раздражающего взлома, который я пытался объяснить! Это невероятно просто, и он просто взял много экспериментов с IE. Ниже приведен код в его простейшей форме для работы в IE:
<html>
<body>
<video id='videoPlayer' width="320" height="240" controls="controls">
<source id='mp4Source' src="movie.mp4" type="video/mp4" />
<source id='oggSource' src="movie.ogg" type="video/ogg" />
</video>
<!-- You MUST give your sources tags individual ID for the solution to work. -->
<script>
var player = document.getElementById('videoPlayer');
var mp4Vid = document.getElementById('mp4Source');
player.pause();
// Now simply set the 'src' property of the mp4Vid variable!!!!
mp4Vid.src = "/pathTo/newVideo.mp4";
player.load();
player.play();
</script>
</body>
</html>
И у вас это есть. Невероятно прост и проверен и работает в IE8 и IE9...
Если у вас возникли проблемы, сообщите мне.