两个页面有时候无法输入中文,求高手...如何调试?

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

使用技术:
extjs,jquery,easy-ui
struts1,ie8浏览器
...全文
154 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
meadking 2011-08-22
  • 打赏
  • 举报
回复

<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中...
meadking 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 brainwkernighan 的回复:]
window.onkeydown是不能重复加载的(Jquery中不一样)。你重新写一个比如以下的语句:
window.onkeydown=null,就可以屏蔽之前的一切定义了。
[/Quote]
我想知道JQuery中不一样,是怎么不一样?
我们刚好使用了JQuery和JQuery easy-ui.
这个问题好久了...
brainwkernighan 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xblue3 的回复:]

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

恩,你这个思路很不错,我想知道的是,这个语句写在jsp页面的最后,可行吗?
html的body之后?
[/Quote]
页面全部加载完之后,window.onload里最好
meadking 2011-07-11
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20110711/09/34d22d7d-44e3-41b8-a906-0230478858c9.html


meadking 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 brainwkernighan 的回复:]
window.onkeydown是不能重复加载的(Jquery中不一样)。你重新写一个比如以下的语句:
window.onkeydown=null,就可以屏蔽之前的一切定义了。
[/Quote]
恩,你这个思路很不错,我想知道的是,这个语句写在jsp页面的最后,可行吗?
html的body之后?
brainwkernighan 2011-07-11
  • 打赏
  • 举报
回复
window.onkeydown是不能重复加载的(Jquery中不一样)。你重新写一个比如以下的语句:
window.onkeydown=null,就可以屏蔽之前的一切定义了。

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧