iframe在可编辑状态(contentEditable)下怎样添加其onkeyup事件?如果行不通,大家用的是什么解决方法?

解决方案 »

  1.   

    代码如下:
    <iframe id="edit" src="about:blank" frameborder="0" ></iframe><script type="text/javascript">
     function dothis(){       
     alert(1);  
     }
    window.onload = function(){
        document.getElementById("edit").contentWindow.document.designMode = 'On';
        document.getElementById("edit").document.contentEditable = true;    
      
        if(document.all){         
             document.getElementById("edit").attachEvent("onkeyup",dothis); 
        }
        else{
             document.getElementById("edit").contentWindow.addEventListener("keyup",dothis,false);
        }
     } 
    </script>
      

  2.   

    上面代码中,在ie下没效果,但ff下可以,把onkeyup换成onblur,两个浏览器都可以,这是为什么呢?
      

  3.   

     if(document.all){         
             document.getElementById("edit").attachEvent("onkeyup",dothis); 
        }
        else{
             document.getElementById("edit").contentWindow.addEventListener("keyup",dothis,false);
                  //这里 keyup,写错了吧
        }
      

  4.   

    感谢你的回复,那地方是ff的方法,用document.all来区分了
      

  5.   

    你的意思是添加监听事件兼容浏览器?/*
    ** <summary>
        ** 添加事件监听
        ** </summary>
    ** <param name="target">监听对象</param>
    ** <param name="eventType">事件类型</param>
    ** <param name="handler">处理函数</param>
    */
           var = addEventHandler=function(target, eventType, handler){
    if (target.addEventListener)
    {
    target.addEventListener(eventType, handler, false);

    else if (target.attachEvent) 
    {
    target.attachEvent("on" + eventType, handler);

    else 
    {
    target["on" + eventType] = handler;
    }
    };
      

  6.   

    我的意思是想给iframe绑定 onkeyup 事件,上面我贴的代码在ie下没效果,查了msdn,iframe确实没有键盘事件,想问问大家如果我要即时统计当前iframe的字数,可以怎么实现 ?