Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/07/2008, 00:03
Avatar de oscarva
oscarva
 
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 2
problema con youtube api + jquery en internet explorer

Bueno estoy empezando a trabajar con javascript y ajax, para empezar quise hacer un pequeño proyecto aprovechando la nueva api de youtube para javascript y jquery.

basicamente es algo muy sencillo, tengo un video en mi pargina y luego por medio de la funcion load() de jquery cargo otro video, pero como raro me genera un error solo en IE

aca el codigo utilizado:

Código HTML:
<script type="text/javascript" src="js/jquery-latest.js"></script>
    <script src="http://swfobject.googlecode.com/svn/tags/rc3/swfobject/src/swfobject.js" type="text/javascript"></script>
    <script type="text/javascript">

        function updateHTML(elmId, value) {
          document.getElementById(elmId).innerHTML = value;
        }

        function setytplayerState(newState) {
          updateHTML("playerstate", newState);
        }

        function onYouTubePlayerReady(playerId) {
          ytplayer = document.getElementById("myytplayer");
          setInterval(updateytplayerInfo, 250);
          updateytplayerInfo();
          ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
          ytplayer.addEventListener("onError", "onPlayerError");
        }

        function onytplayerStateChange(newState) {
          setytplayerState(newState);
        }

        function onPlayerError(errorCode) {
          alert("An error occurred: "+ errorCode);
        }
	
        function updateytplayerInfo() {
          updateHTML("bytesloaded", getBytesLoaded());
          updateHTML("videotime", getCurrentTime());
        }

        // functions for the api calls

        function stop() {
          if (ytplayer) {
            ytplayer.stopVideo();
          }
        }

        function getPlayerState() {
          if (ytplayer) {
            return ytplayer.getPlayerState();
          }		  
        }

        function getBytesLoaded() {
          if (ytplayer) {		    
			var total = ytplayer.getVideoBytesTotal();
			var loaded = ytplayer.getVideoBytesLoaded();
			var porcen = ((loaded*'100')/total);
			var myString = new String(porcen);
            var myArray = myString.split('.');
            return myArray[0];
          }
        }

        function getCurrentTime() {
          if (ytplayer) {
		  	var time = ytplayer.getCurrentTime();
			var totaltime = ytplayer.getDuration();
			var time = (totaltime-time);
			var myString = new String(time);
            var myArrayT = myString.split('.');
            return myArrayT[0];
          }
        }
    </script>


 <a href="#" onclick="$('#video').load('2.php');">Siguiente</a>


 <div id="video">
    <div id="ytapiplayer">
      You need Flash player 8+ and JavaScript enabled to view this video.
    </div>
    <script type="text/javascript">	 
	
      // allowScriptAccess must be set to allow the Javascript from one domain to access the swf on the youtube domain
      var params = { allowScriptAccess: "always" };
      // this sets the id of the object or embed tag to 'myytplayer'. You then use this id to access the swf and make calls to the player's API
      var atts = { id: "myytplayer" };
	 
swfobject.embedSWF("http://www.youtube.com/v/IDVIDEO&amp;border=0&amp;enablejsapi=1&amp;playerapiid=ytplayer&amp;rel=0&amp;autoplay=1", "ytapiplayer", "500", "404", "8", null, null, params, atts);

    </script>
    </div> 
es sencillo, estoy viendo un video y si quiero ver el siguiente doy click en Siguiente y me carga el archivo 2.php donde se encuentra el otro video. el problema es que genera un error no especificado (que me tiene al borde de la locura ) , despues de muchas pruebas veo que el error no esta al cargar el archivo 2.php ya que asi el archivo 2.php tenga solo texto o l que sea tira el mismo error, el problema esta al ocultar el div "video" ya que haciendo pruebas por ejemplo con la funcion $("#video").empty(); me tira el error.

ojala alguien tenga la solucion

Saludos