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&border=0&enablejsapi=1&playerapiid=ytplayer&rel=0&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