1

광범위한 연구 끝에 자바 스크립트에서 내 (상당히) 낮은 기술에 맞는 답변을 찾을 수 없습니다. 당신 중 누구라도 도울 수 있다면 큰 도움이 될 것입니다.동일한 JavaScript 함수를 실행하는 방법

나는이 스크립트를 동일한 페이지에서 두 번 실행하려고하는데, 문제는 YouTubePlayerReady의 함수가 마지막으로 덮어 쓰지 않고 두 번 호출 할 수 없다고 생각합니다. 또한 이름을 변경하면 실제 기능이 수행되지 않습니다.

여기 코드가 있습니다. 같은 페이지에서 사운드와 자동 재생이없는 최대 4 개의 YouTube 동영상을 재생하고 싶습니다. 어떻게 가능한지 아십니까? 부작용을 방지하기

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Prova 1</title> 

<script src="http://www.google.com/jsapi" type="text/javascript"></script> 
    <script type="text/javascript"> 
     google.load("swfobject", "2.1"); 
    </script> 

</head> 

<body align="center"> 


<div id="ytapiplayer2"></div> 

    <script type="text/javascript"> 
     function onYouTubePlayerReady2(playerId2) { 
      ytplayer2 = document.getElementById("myytplayer2"); 
      ytplayer2.playVideo(); 
      ytplayer2.mute(); 
       } 
     var videoID2 = "OFIhzSwDfwo" 
     var params = { allowScriptAccess: "always" }; 
     var atts = { id: "myytplayer2" }; 
     swfobject.embedSWF("http://www.youtube.com/v/" + videoID2 + "?enablejsapi=1&playerapiid=ytplayer\ 
     &autoplay=1&version=3&showinfo=0&iv_load_policy=3&controls=0&modestbranding=1", 
     "ytapiplayer2", "250", "inherit", "0", null, null, params, atts) 
    </script> 



<div id="ytapiplayer"></div> 

    <script type="text/javascript"> 
     function onYouTubePlayerReady(playerId) { 
      ytplayer = document.getElementById("myytplayer"); 
      ytplayer.playVideo(); 
      ytplayer.mute(); 
       } 
     var videoID = "e5iqtQLm-BM" 
     var params = { allowScriptAccess: "always" }; 
     var atts = { id: "myytplayer" }; 
     swfobject.embedSWF("http://www.youtube.com/v/" + videoID + "?enablejsapi=1&playerapiid=ytplayer\ 
     &autoplay=1&version=3&showinfo=0&iv_load_policy=3&controls=0&modestbranding=1", 
     "ytapiplayer", "250", "inherit", "0", null, null, params, atts) 
    </script> 


</body> 
</html> 
+1

몇 가지 문제가 발생할 수 있습니다. 예 : 'ytplayer'는 전역 적이며 함수에 국한되지 않습니다. 또한 함수가 인수를 허용하지만 사용하지는 않습니다. 두 개의 동일한 코드가 있습니다. 둘 다 사용하면 효과가 없다고 말하는거야? 또는 두 동영상 모두에 원래 'onYouTubePlayerReady' 기능을 사용하는 데 문제가 있습니까? –

+0

안녕하세요, 내가 그들을 해결하기 위해 지역 사람들을 만들어야합니까? –

+0

내가 말했듯이 두 가지 문제가있는 것 같습니다. 예 : ID가 'myytplayer2' 또는'myytplayer' 인 요소가 없습니다. 'onYouTubePlayerReady2'는 API가이 함수에 대해 알지 못하기 때문에 호출되지 않습니다. –

답변

0

사용 인수 대신 글로벌 변수의 시간에 대한

감사 :

function onYouTubePlayerReady2(playerId2, ytplayer2, video2, params, atts) 

그런 다음 대신 각 통화 중 상태를 변경의 하드 코딩 된 값을 전달합니다.