输入法切换小程序(js模拟键盘按键输入成功版)
花了半天时间写了个小程序,基本满足最初需求(但目前只支持IE浏览器)。
需求:
在输入汉字的时候没有切换出中文输入法而导致输入了拼音,我们要做的是:将输入的拼音删除并且切换出中文输入法,重新自动在输入法中打出相应的字母。
我的电脑上默认只有两个输入法,中文输入法和美式键盘,所以模拟出”ctrl+空格键“即可在两个输入法之间进行切换。
做的过程和想法:
最初想的是使用网页配合js来做,毕竟界面好做一些。首先想到的就是用js来模拟键盘的输入,想法很好,但是却很难,主要是因为浏览器为了考虑安全性,所以这些功能是不允许的,因此在此处遇到了很大的麻烦,都产生了要放弃用js来做的想法。后来也想到了用模拟键盘输入,不过感觉这样做太麻烦了。后来无意间发现了两篇博文(http://blog.sina.com.cn/s/blog_99baab530101a4nn.html 和 http://weity.blog.163.com/blog/static/14302652008640479337/),虽然其中有错误,但经过借鉴并融合了两者的博文,最终算是马马虎虎的实现了所需要的功能。
用法:
在没有切换中文输入法的情况下,双击已经输入的拼音即可。
代码不多,需要的是思想,不多说了,上代码,直接用IE浏览器就可以直接运行。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script language="javascript" src="1.js" ></script> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- TemplateBeginEditable name="doctitle" --> <title>输入法切换程序</title> <!-- author:hsq ; date: 2015-4-2 9:07:52 采用js+vbs脚本--> <!--目前只支持IE--> <style type="text/css"> body { text-align:center; margin:auto auto; margin-top:50px; background:#FC9;} .id1 {background:#FFC; font-size:18px; color:#D00; width:500px; height:280px; padding:8px 8px; overflow: scroll;} .id2 { margin-bottom: 20px; font-size: 25px; color:#00F;} </style> </head> <body> <div class="id2">输入法切换程序</div> <textarea id="id1" ondblclick="fun1(‘test‘)" value="" class="id1"></textarea> </body> </html> <script language="javascript"> window.onload=function(){//网页初始化的时候选择允许ActiveX与其他进行交互 var ws = new ActiveXObject("Wscript.Shell"); } var id1 = document.getElementById("id1"); id1.focus(); function fun1(id){ var ws = new ActiveXObject("Wscript.Shell"); switch(id){ case ‘test‘: try{ //ws.SendKeys("^{ESC}s"); str = document.selection.createRange().text;//获得选中的文字 if(str.charCodeAt(0)>255) {}//判断若选中的是汉字则什么都不做 else {//选中的是拼音则执行转换操作 //alert(str); ws.SendKeys ("^ ");//切换输入法 setTimeout(function(){ ws.SendKeys(str); },300);//间隔0.3秒之后输入文字 } } catch(e){} break } WshShell.Quit; } </script>
只要想做并努力的去做,终会找到方法的,即使最终没做出来,也会在做的过程中收获很多。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。