使用javascript自动更改键盘语言在没有IE的情况下不起作用

使用javascript自动更改键盘语言在没有IE的情况下不起作用,javascript,keyboard,onfocus,persian,farsi,Javascript,Keyboard,Onfocus,Persian,Farsi,我有一个Java脚本代码,可以在关注文本框时更改键盘语言。但这段代码只能在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

我有一个Java脚本代码,可以在关注文本框时更改键盘语言。但这段代码只能在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>

var farsi=真;
var s=新阵列(32,33,34,35,36,3715481711,41,40215,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);
//==============================================
函数更改()
{
var KeyID=event.keyCode;
如果(KeyID>=128)
{
警惕;
event.keyCode=0;
返回false;
}
如果(KeyID>47&&KeyID<58)返回true;
if(KeyID<32)返回true;
如果(KeyID>32&&KeyID此处:

其他浏览器使用event.which,因此:

更一般地说,您可以:

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

编辑 如果您仍然有问题,可能会有所帮助。您可能会注意到事件对象的keyCode属性和charCode属性是只读的,当然规范的这一部分是信息性的,不是规范性的,因此浏览器可能会也可能不会有其他行为。

此处:

其他浏览器使用event.which,因此:

更一般地说,您可以:

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

编辑 如果您仍然有问题,可能会有所帮助。您可能会注意到事件对象的keyCode属性和charCode属性是只读的,当然规范的这一部分是信息性的,不是规范性的,因此浏览器可能会也可能不会有其他行为

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