无法收听Internet Explorer 7中的滚动事件

我已经试过:

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

Works的FF:

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

获取按键工作:

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

没有正确的解决方案

其他提示

虽然我爱jQuery的多。我不能得到这个工作。然而,我在普通的旧的JavaScript尝试这样做,它在IE,FF,Safari和Chrome。

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

修改在FF,Safari和铬以下作品使用window.load时()。当使用的document.ready它只能在FF。无论出于何种原因,它不在IE8在任一情况下工作。

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

我知道这是一个古老的线程,但有些人可能会觉得它有用。

$(document).scroll()可以通过$(window).scroll()代替,并且它迄今为我工作。

尝试这种情况:

2个事必须发生,然后才可以遍历一个嵌套浏览上下文的DOM。

您需要知道的iframe存在,与文档准备事件的照顾。

而你需要确保的iframe加载。

即:

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

有一点需要注意的是,这绝对不会工作在Firefox跨浏览器。

将这个父:

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

然后把这个上的iframe含量:

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

更换用任何元素你试图听进$(document)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top