javascript代码:
window.onscroll = function () { alert("hello!"); }在IE6下用鼠标滚轮滚动一下,会弹出三个alert提示。在火狐Chrome下都是一次。IE6的bug如何解决?
我设了个标记变量,还是不行,请问错在哪里?
<script type="text/javascript">
var flag=true;
window.onscroll = function () {
if(flag==true){
flag=false;
msgTips();
//alert("test");
}
}
function msgTips(){
if(flag==false){
alert("hello");
}
setTimeout(reSet(),200);
}
function reSet(){
flag=true;
}
</script>

解决方案 »

  1.   

    两种浏览器的机制不一样,IE是每移动1PX就会发生scroll事件,FF是移到位了发生滚动事件(function(){
    var scrollTimer;
    var scroll=function(){
    if(scrollTimer){
    clearTimeout(scrollTimer);
    }
    scrollTimer=setTimeout(function(){alert("test");},500);
    }
    window.onscroll=scroll;
    }
    )()
      

  2.   

    adfasdf
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    asdf
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    asef
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    asef
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    asef
    <script>var flag=true;
    window.onscroll = function () {
    if(flag){
    flag=false;
    alert(2222222);
    }}
    </script>
    测试只提示一次啊