Domanda

Non è possibile ascoltare l'evento di scorrimento in Internet Explorer 7.

Ho provato:

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

Opere di FF:

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

Come funzionano pressione dei tasti:

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

Nessuna soluzione corretta

Altri suggerimenti

Per quanto io amo jQuery. Non riesco a far funzionare tutto questo. Tuttavia, ho provato questo in pianura vecchio javascript e ha funzionato bene in IE, FF, Safari e Chrome.

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

Modifica le seguenti opere in FF, Safari e Chrome quando si utilizza window.load (). Quando si utilizza document.ready funziona solo in FF. Per qualsiasi motivo non funziona in IE8 in entrambi i casi.

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

Lo so che è un vecchio thread, ma alcune persone poteva essere utile.

$(document).scroll() può essere sostituito da $(window).scroll(), e ha funzionato per me finora.

Prova questo:

2 cose devono accadere prima che si può attraversare il DOM di un contesto di navigazione nidificato.

Hai bisogno di sapere che l'iframe esiste, curato con l'evento ready documento.

E è necessario fare in modo che l'iframe è stato caricato.

vale a 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());
            });
        });
     });

Una cosa da notare è che questo non sarà sicuramente il lavoro cross browser in Firefox.

Mettere questo sul genitore:

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

E poi mettere questo sul contenuto iframe:

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

sostituire $(document) con qualsiasi elemento che si sta cercando di ascoltare in.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top