Я вообще не вижу, где вы инициализируете свой видеоплеер в приведенном выше кодеКод ниже работает нормально в Firefox.Вместо приведенного ниже [YOUR_VIDEO_ID] укажите идентификатор видео, которое вы хотите воспроизвести, и все будет готово.Можно также подтвердить, что приведенный ниже код работает как чемпион в IE и Chrome.
<div id="video" class="overlay">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<div id="ytapiplayer"></div>
<script type="text/javascript">
var params = { allowScriptAccess: "always" };
var atts = { id: 'myytplayer' };
swfobject.embedSWF("http://www.youtube.com/v/[YOUR_VIDEO_ID]?enablejsapi=1&playerapiid=ytplayer&version=3", "ytapiplayer", "640", "360", "8", null, null, params, atts);
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
ytplayer.addEventListener('onStateChange','onytplayerStateChange');
}
function onytplayerStateChange(newState) {
alert("Player's new state: "+newState);
}
function play() {
if (ytplayer) {
ytplayer.playVideo();
}
}
</script>
<a href="javascript:void(0)" onclick="play()">Play</a>
</div>
Я думаю, что вам не хватает того, что вам нужно ссылаться на "playerId" по тому, что вы передавали встрока атрибутов инициализации объекта (var atts = ...).Небольшое тестирование показывает, что функция onYouTubePlayerReady не передает действительное значение идентификатора, которое можно использовать для поиска в DOM.