Advertisement
Guest User

Untitled

a guest
Aug 28th, 2013
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. if (navigator.appName=="Microsoft Internet Explorer"){
  2.     var ieversion=parseInt((navigator.appVersion).substr(22,4)); //Obtenemos la versión de Internet Explorer
  3.  
  4.     if(ieversion==8){ // Este if se puede cambiar poniendo or (||) con las versiones de IE que den problemas. En mi caso solo fue la 8.
  5.  
  6.         /* Como en Internet Explorer 8 dan problemas los iframe, creamos un código para
  7.         reemplazarlos por el clásico <object> pero sin la etiqueta <embed>
  8.         */
  9.  
  10.         // 1- Guardamos en la variable viejo todos los vídeos y el cuerpo HTML original (lo que hay dentro del <div> de los vídeos):
  11.  
  12.         var viejo=document.getElementById("videos").innerHTML;
  13.  
  14.         // 2- Comenzamos a reemplazar elementos:
  15.  
  16.         var nuevo=viejo.replace(/iframe/gi,'object'); // Reemplazamos la etiqueta <iframe> por <object>
  17.         nuevo=nuevo.replace(/src/gi,'data'); // Reemplazamos la propiedad src por data
  18.         nuevo=nuevo.replace(/allowfullscreen/gi,'type="application/x-shockwave-flash"><param name="movie" value="<aqui_aparecera_el_video>" /><param name="wmode" value="transparent" /');// Eliminamos el allowfullscreen agregando las propiedades que le faltan a <object>, la etiqueta <param> juntos a sus propiedades y un valor cualquiera en la propiedad value dado a que más adelante será reemplazada por el vídeo.
  19.  
  20.         // 3- Reemplazo de todos los vídeos del <param> por los que tiene el <iframe> usando jQuery
  21.  
  22.         $("iframe").each(function(i){
  23.  
  24.             var video_cuerpo_html = $(this).attr("src"); // Videos Youtube originales del <iframe>
  25.  
  26.             // Reemplazamos el valor de la propiedad value de la etiquieta <param> cuando sea un vídeo Youtube (Para no quitar el value="transparent" de la otra etiqueta <param>)
  27.  
  28.             nuevo=nuevo.replace('value="<aqui_aparecera_el_video>"','value='+video_cuerpo_html); // Los vídeos de Youtube no estarán encerrados entre comillas dobles porque problemas y no funcionaba bien.
  29.  
  30.         });
  31.  
  32.         // 4- Reemplazamos embed de la URL de los vídeos Youtube por v y eliminamos la propiedad frameborder="0"
  33.  
  34.         nuevo=nuevo.replace(/embed/gi,'v');
  35.         nuevo=nuevo.replace('frameBorder=0',''); // Lo escribo así porque es como Internet Explorer 8 lo interpreta. No ocurre nada si se deja ya que <object><param> no tienen esta propiedad.
  36.  
  37.         // 5- Sustituimos el contenido del <div> de los vídeos actual por el que tiene todos los cambios realizados.
  38.  
  39.         document.getElementById("videos").innerHTML=nuevo;
  40.  
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement