2010-04-20 4 views
1

J'ai une vidéo sur youtube comme si ...CSS Cacher la vidéo Youtube ne fonctionne pas dans IE

<object id="video_1" class="a_video ....... 

Cependant, le CSS pour a_video:

display:none; 

ne se cache pas dans IE.

Quelqu'un sait comment cacher les vidéos YouTube intégrées dans IE?

+4

Avez-vous essayé de mettre la vidéo dans un 'div' et de régler cela à' display: none'? –

+0

pouvez-vous poster votre code HTML et votre CSS qui cache cela pour IE? De même, toutes les feuilles de style conditionnelles sont incluses si vous les utilisez. – hunter

Répondre

1

Si je me souviens bien, j'avais aussi ce problème auparavant. Bien que ma vidéo arrête d'afficher, mais je pouvais l'entendre continuer à jouer en arrière-plan. La solution que j'ai utilisée était de l'enlever complètement et de le renvoyer en cas de besoin.

Comme ceci:

(function($){ 
    $(function(){ 
    var videoCode = $('object').parent().html(); 
    $('#toggleButton').bind('click',function(e){ 
     if($('object').length) { 
     $('object').remove(); 
     } else { 
     $("#container").append(videoCode); 
     } 
    }); 
    }); 
})(jQuery);​ 

Cette fonction fait quelques choses ... Tout d'abord, il définit le code HTML associé à la vidéo (l'objet) dans une variable de sorte qu'il peut en souvenir. Ensuite, il donne à un bouton la possibilité d'afficher/masquer la vidéo (je suppose que c'est le comportement prévu). Ainsi, lorsque le bouton est cliqué, il vérifie si une vidéo est actuellement dans la page, s'il l'est, il la supprime du DOM, et si ce n'est pas le cas, prend le code HTML stocké et le réapplique à la vidéo récipient.

est ici le code HTML qui est allé avec qui:

<div id="container"> 
    <object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/hQVTIJBZook&hl=en_US&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/hQVTIJBZook&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object> 
    </div> 
    <a href="#" id="toggleButton">Toggle Video</a> 
+0

Votre 'videoCode' ne contient pas la balise' '' ', donc vous ne détecterez pas si la vidéo est là ou non la prochaine fois que vous vérifiez, ou je me trompe? – krizajb

+1

'var videoCode = $ ('# container'). Html(); 'Devrait travailler, ignorez moi si j'ai manqué quelque chose;) – krizajb

+0

Mis à jour le code. Il vaudrait mieux utiliser '$ ('object'). Parent(). Html()' que de sélectionner spécifiquement l'élément '# container' car il est plus flexible (bien que la sélection du conteneur avec le balisage fourni fonctionne bien). – RussellUresti

0

Je l'ai vu ce bug IE8. Si vous pointez overflow: caché aux éléments de bloc qui ont des problèmes, cela devrait faire l'affaire. Vous devrez peut-être mettre le code d'intégration Youtube dans quelque chose.