Javascript 语音字符转换在google chrome和safari中无法正常工作

Javascript 语音字符转换在google chrome和safari中无法正常工作,javascript,jquery,ckeditor,phonetics,Javascript,Jquery,Ckeditor,Phonetics,我正在使用拼音字符将英语转换成我的本地语言,但在谷歌chrome和safari中无法正常工作 这是我的密码 ( function() { var codes= new Array(); codes['a']=0x0627; .................. codes['z']=0x0632; codes['A']=0x0622; .................. codes['Z']=0x0630; codes['>']=0x

我正在使用拼音字符将英语转换成我的本地语言,但在谷歌chrome和safari中无法正常工作 这是我的密码

( function() {

   var codes= new Array();
   codes['a']=0x0627;
   ..................
   codes['z']=0x0632;

   codes['A']=0x0622;
   ..................
   codes['Z']=0x0630;

   codes['>']=0x0650;
   ..................
   codes[':']=58;

   codes['[']=0x201C;
   ..................
   codes['´']=0x0657;

   codes['0']=0x30;
   ..................
   codes['9']=0x39;

   isUrdu=true;
   var urdueditor_lang = 1;        // 1: Urdu, 0: English
   //var isiri2901_nativelang = 0;  // 1: Urdu, 0: English


    function DenIE_OnKeyDown( e )
    {
        var charCode = e.keyCode;
        if (e.ctrlKey && (charCode==32))
        {
            if (urdueditor_lang == 0)
              urdueditor_lang = 1;
            else
              urdueditor_lang = 0;
            try {
              e.preventDefault();
            } catch (err) {
            }
            return false;
        }
    }

    function DenIE_OnKeyPress( e )
    {
        if(urdueditor_lang!=1) return true;
        var charCode = e.keyCode;
        var whichASC = charCode ;
        var whichChar = String.fromCharCode(whichASC); // key's character
        e.keyCode= codes[whichChar];
    }

    var DenGecko_OnKeyDown = function(e) {
        var charCode = (e.charCode) ? e.charCode :
                            ((e.keyCode) ? e.keyCode :
                           ((e.which) ? e.which : 0));
        if (e.ctrlKey && (charCode==32))
        {
            if (urdueditor_lang == 0)
              urdueditor_lang = 1;
            else
              urdueditor_lang = 0;
            try {

              e.preventDefault();
            } catch (err) {
            }
            return false;
        }
    };

    var DenGecko_OnKeyPress = function(e) {
        if(urdueditor_lang!=1) return true;
        var charCode = e.charCode;
        var whichASC = charCode ;
        var whichChar = String.fromCharCode(whichASC); // key's character
        if((charCode==13) || (charCode==8)|| (charCode==37) || (charCode==39) ||  (charCode==38)|| (charCode==40)|| (charCode==33) || (charCode==34) || (charCode==50)  ) return;
        if (e.bubbles==false)
        return true;

        console.log("whichASC", whichASC);
        if (whichASC >= 0x00FF) {
            isUrdu=true;
        }
        else
        {
            isUrdu=false;
        }

        if (whichASC < 0x0020 || whichASC >= 0x007F || e.ctrlKey || e.altKey || e.metaKey)
            return true;
        var newkey;
        newkey = codes[whichChar];
        if (newkey == whichASC)
            return true;
        txt=String.fromCharCode(codes[whichChar]);
          e.preventDefault();
          var editor = CKEDITOR.instances.urduContent;

          editor.insertText(txt);
        }


   CKEDITOR.plugins.add( 'urdu',
   {
      init : function( editor )
      {
         editor.on( 'contentDom', function( e ) {
            var doc = this.document.$;
            if ( CKEDITOR.env.ie ) {        // If Internet Explorer.
               doc.attachEvent("onkeydown", DenIE_OnKeyDown ) ;
               doc.attachEvent("onkeypress", DenIE_OnKeyPress ) ;
            } else {                // If Gecko.
               doc.addEventListener( 'keydown', DenGecko_OnKeyDown, true ) ;
               doc.addEventListener( 'keypress', DenGecko_OnKeyPress, true ) ;
            }
         });

      } //Init
   } );

})();
(函数(){
变量代码=新数组();
代码['a']=0x0627;
..................
代码['z']=0x0632;
代码['A']=0x0622;
..................
代码['Z']=0x0630;
代码['>']=0x0650;
..................
代码[':']=58;
代码['[']=0x201C;
..................
代码[''']=0x0657;
代码['0']=0x30;
..................
代码['9']=0x39;
乌尔都语=真;
var urdueditor_lang=1;//1:乌尔都语,0:英语
//var isiri2901_nativelang=0;//1:乌尔都语,0:英语
功能DenIE_OnKeyDown(e)
{
var charCode=e.keyCode;
如果(e.ctrlKey&&(charCode==32))
{
if(urdueditor_lang==0)
urdueditor_lang=1;
其他的
urdueditor_lang=0;
试一试{
e、 预防默认值();
}捕捉(错误){
}
返回false;
}
}
功能DenIE_on按键(e)
{
if(urdueditor_lang!=1)返回true;
var charCode=e.keyCode;
var whichASC=字符码;
var whichChar=String.fromCharCode(whichASC);//键的字符
e、 keyCode=代码[whichChar];
}
var DenGecko_OnKeyDown=函数(e){
var charCode=(e.charCode)?e.charCode:
((e.keyCode)?e.keyCode:
((e.which)?e.which:0));
如果(e.ctrlKey&&(charCode==32))
{
if(urdueditor_lang==0)
urdueditor_lang=1;
其他的
urdueditor_lang=0;
试一试{
e、 预防默认值();
}捕捉(错误){
}
返回false;
}
};
var DenGecko_OnKeyPress=函数(e){
if(urdueditor_lang!=1)返回true;
var charCode=e.charCode;
var whichASC=字符码;
var whichChar=String.fromCharCode(whichASC);//键的字符
如果((charCode==13)|(charCode==8)|(charCode==37)|(charCode==39)|(charCode==38)|(charCode==40)|(charCode==33)|(charCode==34)|(charCode==50))返回;
如果(如气泡==假)
返回true;
log(“whichASC”,whichASC);
如果(whichASC>=0x00FF){
乌尔都语=真;
}
其他的
{
乌尔都语=假;
}
if(whichASC<0x0020 | | whichASC>=0x007F | | | e.ctrlKey | | e.altKey | | e.metaKey)
返回true;
var newkey;
newkey=代码[whichChar];
if(newkey==whichASC)
返回true;
txt=String.fromCharCode(代码[whichChar]);
e、 预防默认值();
var editor=CKEDITOR.instances.urduContent;
编辑器.插入文本(txt);
}
CKEDITOR.plugins.add('urdu',
{
init:函数(编辑器)
{
on('contentDom',function(e){
var doc=此.document.$;
if(CKEDITOR.env.ie){//if Internet Explorer。
附件文件(“onkeydown”,DenIE_onkeydown);
附件文件(“onkeypress”,DenIE_onkeypress);
}否则{//如果壁虎。
doc.addEventListener('keydown',DenGecko_OnKeyDown,true);
文件附录列表('keypress',DenGecko_OnKeyPress,真);
}
});
}//初始化
} );
})();
但它在Firefox中工作,我可以在所有浏览器中阅读文本
在chrome中,safari字符不必进行文字绑定。

发布您正在尝试的代码,如果您不发布您迄今为止尝试过的代码,我们将无法复制。@s非常抱歉,我很忙,时间太晚了,但我已经更新了我的代码,请查看它……自从我发布该代码表示它在chrome中不起作用以来,已经有4年多的时间了,所以h你真的试过了吗?为什么你添加了jQuery标签?现在添加jQuery后,它在Chrome中工作,但不绑定字符来造字它只是在更改之前显示字符它是事件,不显示字符以及你能指导我为什么它在Chrome中不能正常工作吗?发布你正在尝试的代码,如果你请不要发布您迄今为止尝试过的内容。@s非常抱歉,我很忙,时间太晚了,但我已经更新了我的代码,请检查一下……自从我发布该代码声明它在Chrome中不起作用以来,已经有4年多了,那么您真正尝试过什么?为什么要添加jQuery标记?在添加jQuery之后,现在它在Chrome中起作用,但在Chrome中不起作用ind characters来制作单词它只是在更改之前向我显示字符它是事件也不向我显示字符你能告诉我为什么它在chrome中不能正常工作吗?