使用JavaScript没有IE浏览器无法正常工作自动切换键盘语言(auto change keyb

2019-09-21 02:19发布

我有一个Java Script代码,可以改变键盘语言时注重文本框。 但是这个代码只是在IE和Firefox或Opera我的代码工作斜面正常工作:

<script type="text/javascript"  language="javascript">
var farsi = true ;
var s = new Array(32,33,34,35,36,37,1548,1711,41,40,215,43,
              1608,45,46,47,48,49,50,51,52,53,54,55,56,
              57,58,1603,44,61,46,1567,64,1616,1584,125,
              1609,1615,1609,1604,1570,247,1600,1548,47,
              8217,1583,215,1563,1614,1569,1613,1601,
              8216,123,1611,1618,1573,126,1580,1688,
              1670,94,95,1662,1588,1584,1586,1610,1579,
              1576,1604,1575,1607,1578,1606,1605,1574,
              1583,1582,1581,1590,1602,1587,1601,1593,
              1585,1589,1591,1594,1592,60,124,62,1617);
//==============================================
    function change()
    {

   var KeyID =event.keyCode;
   if(KeyID >= 128)
 {
  alert("تغيير دهيد EN لطفا زبان صفحه کليد را به");
  event.keyCode=0;
  return false;
 }

 if(KeyID > 47 && KeyID < 58) return true;
 if(KeyID < 32)return true;
    if ( KeyID>32 && KeyID<128)  event.keyCode = s[KeyID-32] ;

    }
</script>

Answer 1:

这里:

> var KeyID =event.keyCode;

其他浏览器使用event.which,所以:

var KeyID = event.which || event.keyCode;

更一般地,你可以这样做:

var keyProp = typeof event.which == 'number'? 'which' : 'keyCode';

然后:

var keyCode = event[keyProp];

编辑

如果您仍然有问题,也许是W3C DOM事件规范将帮助。 你可能注意到键代码 ,事件对象的哪些charCode属性虽然是当然的只读 ,该规范的部分是信息,不规范,因此浏览器可能会或可能不会表现并非如此。



文章来源: auto change keyboard language using javascript not work without IE