2012-02-06 3 views
2

swfObject를 사용하여 웹 사이트에 Youtube 비디오를 포함하므로 Youtube Player API를 사용하여 조작 할 수 있습니다. 그러나, 나는 Coffeescript에서 사이트를 다시 작성하는 과정에 있으며이 문제에 집착하고 있습니다.CoffeeScript - 동등한 JS 코드가 내장 된 Youtube 비디오를 재생하지 못합니다.

<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() 

컴파일 여기

는 HTML입니다 다음 JS :

0 그것은 방화범 나에게 다음과 같은 오류를 제공

:

ytplayer.playVideo is not a function
return ytplayer.playVideo();

+1

예 코드는 같습니다. 커피 스크립트를 어떻게 넣으십니까? 미리 컴파일되었거나 인라인 컴파일러를 통해? – TimWolla

+0

터미널에서 컴파일하고 js에 연결합니다. 위의 html을 편집하여 포함 항목을 표시합니다. – CHawk

+1

컴파일 된 결과물을 보셨습니까? – TimWolla

답변

3

당신이 YouTube 동영상을 재생하기 전에 YouTube 플레이어가로드가 완료되지 않았기 때문에이 가능성이 높습니다.

이 시도 : 이것은 유튜브는 플레이어가 준비 알려하는 데 사용하는 onYouTubePlayerReady callback에 코드를 넣습니다

window.onYouTubePlayerReady = (playerid) -> 
    ytplayer = document.getElementById(playerid) 
    ytplayer.playVideo() 

.

Firebug 내부에서 실행했기 때문에 JS 코드가 작동했다고 가정합니다. 그렇다면 콘솔에 명령을 입력 할 때까지 YouTube 플레이어가로드 될 가능성이 큽니다.

관련 문제