一个自动检索插件的疑问 autocomplete 中文支持性不好?

  1. 先附上插件地址,这个链接上就可以查看到问题。你输入中文的时候会发现,有时候中文还未输入完全就已经有文字显示在里面。

问题如下:

clipboard.png

因为是github上面的项目我想到的是看一下有没有ieeues发现有人提交问题,但是没有解决,看源码又不知道从何看起,所以无奈发布问题。这个插件除了这个问题均可以满足我的要求。希望有人能帮我解决。

阅读 2.6k
2 个回答

clipboard.png

不知道为什么代码里面有这个,然后把下面的注释掉了就可以了,下面的代码其实我看也没什么作用??暂时问题解决了,如果有谁有什么见解,可以发我下。

建议换个插件,读源码看这段

accent_map = {
            'ẚ':'a','Á':'a','á':'a','À':'a','à':'a','Ă':'a','ă':'a','Ắ':'a','ắ':'a','Ằ':'a','ằ':'a','Ẵ':'a','ẵ':'a','Ẳ':'a',
            'Ẫ':'a','ẫ':'a','Ẩ':'a','ẩ':'a','Ǎ':'a','ǎ':'a','Å':'a','å':'a','Ǻ':'a','ǻ':'a','Ä':'a','ä':'a','Ǟ':'a','ǟ':'a',
            'Ã':'a','ã':'a','Ȧ':'a','ȧ':'a','Ǡ':'a','ǡ':'a','Ą':'a','ą':'a','Ā':'a','ā':'a','Ả':'a','ả':'a','Ȁ':'a','ȁ':'a',
            'Ȃ':'a','ȃ':'a','Ạ':'a','ạ':'a','Ặ':'a','ặ':'a','Ậ':'a','ậ':'a','Ḁ':'a','ḁ':'a','Ⱥ':'a','ⱥ':'a','Ǽ':'a','ǽ':'a',
            'Ǣ':'a','ǣ':'a','Ḃ':'b','ḃ':'b','Ḅ':'b','ḅ':'b','Ḇ':'b','ḇ':'b','Ƀ':'b','ƀ':'b','ᵬ':'b','Ɓ':'b','ɓ':'b','Ƃ':'b',
            'ƃ':'b','Ć':'c','ć':'c','Ĉ':'c','ĉ':'c','Č':'c','č':'c','Ċ':'c','ċ':'c','Ç':'c','ç':'c','Ḉ':'c','ḉ':'c','Ȼ':'c'
//....................................
}

//后面还有许多字符,这里不全给你粘贴过来了,看下面调用 accent_map 对象的这段

function accentReplace (s) {
        if (!s) { return ''; }
        var ret = '',i;
        for (i=0; i < s.length; i+=1) {
            ret += accent_map[s.charAt(i)] || s.charAt(i);
        }
        return ret;
}

全文搜索,只有这段含有 accent_map 对象的使用,简单易懂吧,就是把各种带音调的,或者不同的英文字符,转换成标准的英文字母或者直接拼接字符串。

这一段恰恰是关键,在你输入法打字的时候字符先进入输入框而转换成汉子是在你敲空格之后,但是这时输入框已经判断出了你的字符并转换成标准英文。

再仔细看你又会发现只有你输入的第一次个字符才会变成英文,后面的输入正常了,因为这个事件不是持续的监听,只会监听一次,这也和代码有关。

作者设计的时候把重点放在英文字符和数字字符上,并没有考虑中文,你可以试着改写代码,但是我建议你再找其它插件,改代码耽误时间还未必有效

望采纳

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题