场景:
一个系统,有两个页面无法切换中文输入法,也就是无法输入中文.这种情况不是每次发生,而是偶尔发生,并且重现次数很小.
我仔细查看了页面,页面中存在将键盘按键屏蔽掉操作,譬如
<script language="JScript" for="document" event="onkeydown">
if(event.ctrlKey && event.keyCode == 78) {
    event.returnValue = false;
}...下面还有很多.
但是我注释了这样的代码,而且也清楚了浏览器缓存,
遗憾的是:有时候,还是无法输入中文.
现在的问题是:我应该如何调试代码?如何找出为何不能输入中文.
更加确切的说:如何捕捉事件?捕捉任意事件:如键盘点击.
我想知道:但切换输入法的时候,到底发生了什么,使得中文无法输入?
谢谢使用技术:
extjs,jquery,easy-ui
struts1,ie8浏览器

解决方案 »

  1.   

    window.onkeydown是不能重复加载的(Jquery中不一样)。你重新写一个比如以下的语句:
    window.onkeydown=null,就可以屏蔽之前的一切定义了。
      

  2.   

    恩,你这个思路很不错,我想知道的是,这个语句写在jsp页面的最后,可行吗?
    html的body之后?
      

  3.   

    http://topic.csdn.net/u/20110711/09/34d22d7d-44e3-41b8-a906-0230478858c9.html
      

  4.   

    页面全部加载完之后,window.onload里最好
      

  5.   

    我想知道JQuery中不一样,是怎么不一样?
    我们刚好使用了JQuery和JQuery easy-ui.
    这个问题好久了...
      

  6.   


    <script language="javascript">

    function switchIME(enable){
    var root = document.getElementById("mead");
    var show = document.getElementById("show"); 
         if(enable){
    show.innerHTML = "IME has opened.";  
    root.style.cssText = "ime-mode:auto;width:300px;height:400px;";
    }else{
    show.innerHTML = "IME has closed.";  
    root.style.cssText = "ime-mode:disabled;width:300px;height:400px;";
    }

    }


    </script><textarea id="mead" style="ime-mode:disabled;width:300px;height:400px;" >

    </textarea>
    <br/>
    <br/>
    <div id="show">hello you.</div>
    <br/>
    <input type="button" onclick= "switchIME(true);" value="开启中文输入" />
    <input type="button" onclick= "switchIME(false);" value="关闭中文输入" />
    我使用上面代码重演了这个bug.
    确定我们系统的输入法问题是和css这个样式
    ime-mode:disabled
    出现的情况一模一样.可以切换输入法,但是无法输入中文.
    ======
    于是我用Eclipse全文搜索,ime-mode,
    发现没有这个字符串.
    这个bug是偶尔出现的.
    jquery和jquery easy UI中...