Я пишу некоторый код для поддержки заглушки для <source>
элементов как дочерних элементов <track>
как часть моего видео-субтитров / WebVTT polyfill Captionator .
К сожалению, разметка изначально создана так:
<video controls autobuffer autoplay loop id="videoTest" width="505" height="232">
<source src="video/arduino.m4v" type="video/mp4" />
<source src="video/arduino.webm" type="video/webm" />
<source src="video/arduino.ogv" type="video/ogg" />
<track kind="signlanguage" srclang="ja" label="Sign Language, Japanese">
<source src="video/signlanguage.m4v" type="video/mp4" />
<source src="video/signlanguage.webm" type="video/webm" />
<source src="video/signlanguage.ogv" type="video/ogg" />
</track>
</video>
... при анализе браузером видоизменяется в следующее:
<video controls autobuffer autoplay loop id="videoTest" width="505" height="232">
<source src="video/arduino.m4v" type="video/mp4" />
<source src="video/arduino.webm" type="video/webm" />
<source src="video/arduino.ogv" type="video/ogg" />
<track kind="signlanguage" srclang="ja" label="Sign Language, Japanese" />
<source src="video/signlanguage.m4v" type="video/mp4" />
<source src="video/signlanguage.webm" type="video/webm" />
<source src="video/signlanguage.ogv" type="video/ogg" />
</video>
Поскольку внутреннее DOM-представление разметки в браузере сглажено, и теги <source>
являются прямыми потомками видео, я больше не могу связывать их с рассматриваемым <track>
.
Есть ли способ, которым я могу проанализировать исходную разметку, чтобы добавить поддержку синтаксиса, без необходимости выполнять избыточный XHR для извлечения всего источника страницы?
Заранее спасибо:)