以下代码在上一个项目中用来监控 keydown 事件是有效的,为何改为监听 resize 就不行了呢?
$(function(){
//~~~~~~~~~~~~~~~~~~~~~ 窗体变化
if(document.addEventListener){
        document.addEventListener("resize",resizeHandler,true);
    }else{
        document.attachEvent("onresize",resizeHandler);
    }
});
function resizeHandler(event)
{
alert("重置尺寸事件"); //这语句没有执行到
var e = event || window.event;
//阻止冒泡
    if(e.preventDefault) e.preventDefault();
    else e.returnValue = false;
    if(e.stopPropagation) e.stopPropagation();
    else e.cancelBubble = true;
}

解决方案 »

  1.   

    $(function(){
    //~~~~~~~~~~~~~~~~~~~~~ 窗体变化
    if(document.addEventListener){
      window.addEventListener("resize",resizeHandler,true);
      }else{
      window.attachEvent("onresize",resizeHandler);
      }
    });
    function resizeHandler(event)
    {
    alert("重置尺寸事件"); //这语句没有执行到
    var e = event || window.event;
    //阻止冒泡
      if(e.preventDefault) e.preventDefault();
      else e.returnValue = false;
      if(e.stopPropagation) e.stopPropagation();
      else e.cancelBubble = true;
    }
    但不知道为什么事件被激发两次,阻止冒泡不管用!
      

  2.   

    这个可能是你对象搞错了,你试试 window. 不要用document.
      

  3.   

    有些是window下的
    最好监听window和document的resize
      

  4.   

    function init(){ 
    //~~~~~~~~~~~~~~~~~~~~~ 窗体变化
    if(document.addEventListener){
      window.addEventListener("resize",resizeHandler,true);
      }else{
      window.attachEvent("onresize",resizeHandler);
      }
    }
    function resizeHandler(event)
    {
    alert("重置尺寸事件"); //这语句没有执行到
    var e = event || window.event;
       if(e.preventDefault) e.preventDefault();
       else e.returnValue = false;
       if(e.stopPropagation) e.stopPropagation();
       else e.cancelBubble = true;
    }</script>
    </head><body onload="init()">
    <img src="">
    </body>
    这样试试  ie可以  其他的都不行
      

  5.   

    firefox 使用了以下代码后,当监听到resize事件后,整个浏览器什么内容都看不到了,连浏览器的菜单都不见了
    if(window.addEventListener){
      window.addEventListener("resize",resizeHandler,true);
      }else{
      window.attachEvent("onresize",resizeHandler);
      }

    function resizeHandler(event)
    {
    alert("重置尺寸事件"); //这语句没有执行到
    var e = event || window.event;
      if(e.preventDefault) e.preventDefault();
      else e.returnValue = false;
      if(e.stopPropagation) e.stopPropagation();
      else e.cancelBubble = true;
    }