Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (navigator.appName=="Microsoft Internet Explorer"){
- var ieversion=parseInt((navigator.appVersion).substr(22,4)); //Obtenemos la versión de Internet Explorer
- 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.
- /* Como en Internet Explorer 8 dan problemas los iframe, creamos un código para
- reemplazarlos por el clásico <object> pero sin la etiqueta <embed>
- */
- // 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):
- var viejo=document.getElementById("videos").innerHTML;
- // 2- Comenzamos a reemplazar elementos:
- var nuevo=viejo.replace(/iframe/gi,'object'); // Reemplazamos la etiqueta <iframe> por <object>
- nuevo=nuevo.replace(/src/gi,'data'); // Reemplazamos la propiedad src por data
- 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.
- // 3- Reemplazo de todos los vídeos del <param> por los que tiene el <iframe> usando jQuery
- $("iframe").each(function(i){
- var video_cuerpo_html = $(this).attr("src"); // Videos Youtube originales del <iframe>
- // 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>)
- 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.
- });
- // 4- Reemplazamos embed de la URL de los vídeos Youtube por v y eliminamos la propiedad frameborder="0"
- nuevo=nuevo.replace(/embed/gi,'v');
- 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.
- // 5- Sustituimos el contenido del <div> de los vídeos actual por el que tiene todos los cambios realizados.
- document.getElementById("videos").innerHTML=nuevo;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement