2011-10-08 62 views
1

經過廣泛的研究,我找不到一個答案,我的(相當)低技能的JavaScript。如果你們中的任何一位能夠提供幫助,這將是一個很大的安慰如何運行相同的JavaScript函數

我想在同一頁面上運行這個腳本兩次,但我認爲問題是功能onYouTubePlayerReady不能被調用兩次,而不會被覆蓋的最後一次。 另外,如果我改變它的名字,實際的功能將不會被執行。

這是代碼。我希望它可以播放最多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

嗨felix,我應該讓他們本地解決它? –

+0

正如我所說,我不知道,似乎有幾個問題。例如。你沒有ID爲'myytplayer2'或'myytplayer'的元素。 'onYouTubePlayerReady2'永遠不會被調用,因爲API不知道這個函數。 –

回答

0

使用的參數,以避免副作用:

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

然後在硬編碼值,而不是每次通話過程中改變狀態通過。