Я встраиваю видео с YouTube на веб-сайт, используя swfObject, чтобы я мог управлять им с помощью YouTube Player API. Однако я переписываю сайт на Coffeescript и застреваю над этой проблемой.
Вот HTML:
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/swfobject.js">//embedding youtube videos</script>
<script type="text/javascript" src="coffee/test.js"></script>
</head>
<body>
<div id="ytplayer">
<p>You will need Flash 8 or better to view this content.</p>
</div>
</body>
<script type="text/javascript">
var params = { allowScriptAccess: "always" };
swfobject.embedSWF( "http://www.youtube.com/v/yeClJneSNXA&enablejsapi=1&playerapiid=ytplayer", "ytplayer", "425", "365", "8", null, null, params);
</script>
</html>
Работает следующий код:
ytplayer = document.getElementById('ytplayer');
ytplayer.playVideo();
Тем не менее, эквивалентный (я думаю) код кофейного кода НЕ:
ytplayer = document.getElementById("ytplayer")
ytplayer.playVideo()
, который компилируется в следующий JS:
(function() {
var ytplayer;
ytplayer = document.getElementById("ytplayer");
ytplayer.playVideo();
}).call(this);
Это дает мне следующую ошибку в Firebug:
ytplayer.playVideo не является функцией
return ytplayer.playVideo ();