Question

Impossible d'écouter l'événement de défilement dans Internet Explorer 7.

J'ai essayé:

$("#myIframe").scroll(function() { alert('hi'); })

Travaux de FF:

$($("#myIframe").contents().get(0)).scroll(function() { alert('hi'); })

Mise en travail pressions sur les touches:

$($("#myIframe").contents().get(0)).keydown(function() { alert('hi'); })

Pas de solution correcte

Autres conseils

Autant que j'aime jQuery. Je ne peux pas obtenir ce travail. Cependant, j'ai essayé dans ce bon vieux javascript et cela a fonctionné très bien dans IE, FF, Safari et Chrome.

<script type="text/javascript">
    window.onload = function() {
      var frm = document.getElementById("myIframe").contentWindow;
      frm.onscroll = function(){
        alert("EUREKA");
      }
    }
</script>

EDIT: Les travaux suivants dans FF, Safari et Chrome lors de l'utilisation window.load (). Lors de l'utilisation document.ready il ne fonctionne que dans FF. Quelle qu'en soit la raison, il ne fonctionne pas dans IE8 dans les deux cas.

$(window).load(function(){
    $($('#myIframe').contents()).scroll(function(){
       alert('frame scrolled in jquery');
    }); 
}); 

Je sais qu'il est un vieux fil, mais certaines personnes peuvent y trouver.

$(document).scroll() peut être remplacé par $(window).scroll(), et il a travaillé pour moi jusqu'à présent.

Essayez ceci:

2 choses doivent se produire avant de pouvoir traverser le Royaume d'un contexte imbriqué de navigation.

Vous devez savoir que le iframe existe, pris en charge avec le document d'événement prêt.

Et vous devez vous assurer que le iframe a chargé.

-à-dire:

    $(document).ready(function(){

        // #page is the id of the iframe
        $('#page').load(function(){
            // $(this)[0].contentWindow is the window of your nested browsing context/ iframe
            $($(this)[0].contentWindow).scroll(function(){
                console.log($(this).scrollTop());
            });
        });
     });

Une chose à noter est que cela ne fonctionnera certainement pas dans Firefox navigateur cross.

Mettre cela sur le parent:

var childScrollHandler = function () {
   alert('Scrolling going on');
}

Et puis mettre cela sur le contenu iframe:

$(document).bind('scroll', function(ev){
    parent.childScrollHandler(ev);
});

remplacer $(document) par quelque élément que vous essayez d'écouter dans.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top