#javascript #html #api #youtube
#javascript #HTML #API #YouTube
Вопрос:
Я работаю с API YouTube Player и использую seekTo()
функцию, но она не работает. На самом деле, playVideo()
or pauseVideo()
тоже не работает. Вот код:
<script type="text/javascript" src="swfobject.js"></script>
<body>
<div id="divvideo">
<p>You will need Flash 8 or better to view this content.</p>
</div>
<script type="text/javascript">
var params = { allowScriptAccess: "always" };
var atts = { id: "video" };
swfobject.embedSWF(
"http://www.youtube.com/v/o3nmOw9vKw4?enablejsapi=1amp;playerapiid=video", "divvideo", "720", "405", "8", null, null, params, atts);
ytplayer = document.getElementById("video");
function play() {
if (ytplayer) {
ytplayer.playVideo();
}
}
</script>
<a href="javascript:void(0);" onclick="play()">Play</a>
</body>
Видео отображается, но гиперссылка на воспроизведение не работает. Что мне следует делать?
Комментарии:
1. Так, в частности, не работает скрипт? Или сам проигрыватель не работает? Есть ли у вас какое-либо значение для ytplayer?
2. Это сценарий: проигрыватель работает, но когда я нажимаю гиперссылку «Воспроизвести», он ничего не делает. Я думаю, что ytplayer — это объект, который появляется: ytplayer = document.getElementById(«видео»);
Ответ №1:
В вашем JavaScript у вас есть это:
ytplayer = document.getElementById("video");
Но когда вы объявляете свой элемент, вы объявляете его следующим образом:
<div id="divvideo">
Видите несоответствие? Вы ищете HTML-элемент, который id
есть "video"
, но его нет — вместо него id
есть "divvideo"
ваш HTML-элемент.
Вам нужно либо изменить свой getElementById
вызов на take "divvideo"
, либо div
изменить свой на have id="video"
.
Комментарии:
1. Нет, #video — это имя <объекта> или <встраивания>, которое отображается с помощью SWFObject. Я попытался изменить document.getElementById(«divvideo»), но это не сработало. Но спасибо, что потратили свое время! ;-).