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

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

使用技术:
extjs,jquery,easy-ui
struts1,ie8浏览器
...全文
1242 34 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
meadking 2014-03-25
  • 打赏
  • 举报
回复
故地重游,我都忘记了,曾经我解决过这个问题.
胜利之眼 2013-10-29
  • 打赏
  • 举报
回复
不知道,帮顶一下
失落夏天 2013-10-29
  • 打赏
  • 举报
回复
怎么解决的? 楼主分享一下?
luxt888 2013-10-29
  • 打赏
  • 举报
回复
遇到了同样的问题注视掉ime-mode ok了
jinggangz 2012-03-30
  • 打赏
  • 举报
回复
我的问题决绝了,是应为编码上的问题
teemai 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 的回复:]

终于解决了这个bug...真是高深啊...
[/Quote]

什么问题引起的?
本来我像说的比如安装了搜狗或者拼音输入法,它和其他软件自带的快捷键会有冲突,就切换不了了。比如千千静听和搜狗就有冲突。打不了中文。
yanghengtao 2012-03-30
  • 打赏
  • 举报
回复
这么高深的bug也能解决 楼主真是高啊,但是能否共享一下解决方案呢。。
jinggangz 2012-03-30
  • 打赏
  • 举报
回复
楼主 我也遇到这问题,能打答案分享下吗
桃园闲人 2012-03-30
  • 打赏
  • 举报
回复
是不是输入框控件本身不支持中文呀。
meadking 2012-02-23
  • 打赏
  • 举报
回复
终于解决了这个bug...真是高深啊...
24K純帥 2011-08-22
  • 打赏
  • 举报
回复
只能帮顶一下了
休谱诺斯 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 feg545 的回复:]
onkeydown对于中文输入的支持本来就有问题。
可以改成onkeyup或者onkeypress。
[/Quote]
这个有可能。。。
walkman_22 2011-08-22
  • 打赏
  • 举报
回复
没遇到过。帮顶。
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中...
老张-AI 2011-08-18
  • 打赏
  • 举报
回复
这个貌似不是问题来的。。

很多时候都是这样的,怎么输都是英文,就算切出中文图标,但是就是输不了。。但是过一分。又OK了。。。

特别是用firefox的时候,输汗字,出现这种情况,你打开firebug控制台,下面会出现很多错误。。。
meadking 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bearkin 的回复:]
切换中文输入法失败
[/Quote]
切换中文输入法,是没有问题的.
meadking 2011-08-18
  • 打赏
  • 举报
回复
恩.谢谢各位,这个问题很久了.
我发现,按shift+ctrl,输入法的图标是会改变的.
就是说,可以切换输入法....

但是Google输入法的中文,中文提示列表却没有出现(输入拼音,会有一行列表,提供选择的.)
输入文本框的,统统是字母...

头痛了
cbdhxka 2011-07-11
  • 打赏
  • 举报
回复
microsoft script debugger
用于ie下调试js
安装这个来调试下吧,和firebug的功能差不多。使用方法网上有。
oO临时工Oo 2011-07-11
  • 打赏
  • 举报
回复
以下给点个人思路
-----------------------------------------
给document.onkeydown 增加事件的两种方式,
一是<script language="JScript" for="document" event="onkeydown"> ... </script>
二是document.onkeydown = xx; // xx是一个事件函数

通过方式二定义的事件是最先有效的,这一点可以在页面最后增加以下代码行验证
<script language="JScript">
alert( document.onkeydown);
</script>


但是,通过方式一定义的事件是最终有效的,这一点可以通过在页面增加以下代码验证。同时这种方法可以看到document.onkeydown 的函数到底是什么(通过alert( document.onkeydown )显示的是函数源码)。
<input onclick="javascript:alert( document.onkeydown );" type="button" value="查看document.onkeydown "/>


如果不方便修改HTML源码,在IE中,上面一句可以改为在地址栏执行,javascript:alert( document.onkeydown );"

所以,楼主可以通过以上两种查看方式查看document到底想增加哪些onkeydown 事件,以及最终的事件是什么。

另外楼主可以在页面的最后面增加以下代码
<script language="JScript" for="document" event="onkeydown">
</script>

就是一个空的事件实体,用以屏蔽document.onkeydown的事件,查看是不是因为定义了document.onkeydown事件而影响了输入法切换。

--------------------------------------------
以上实验在IE7下面。

淫生杯具 2011-07-11
  • 打赏
  • 举报
回复
还有这等怪事 。。。时好时坏的问题难搞,是不是操作系统的问题?
加载更多回复(13)

81,122

社区成员

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

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