2

jquery uiコンボボックスにアラビア語を表示するWebアプリを開発しています.IEとfirefoxでは完全に機能していますが、chromeは単語を別々の方法で表示しています!

グーグルクロームのスクリーンショット

コンボボックスとドロップダウンリストで2つのsonyの違いを見ることができます

ここに私のメタがあります

<meta http-equiv="content-type" content="text/html";charset="utf-8" />

データは照合を使用してSQLサーバーに保存されます

4

3 に答える 3

3

コメントで言及されているページhttp://jqueryui.com/demos/autocomplete/#comboboxを Chrome F12 エディタで見ると、このブラウザでは、jQuery で生成されたドロップダウン リストのような要素がfoo表示され、各文字が別のstrong要素内: <strong>f</strong><strong>o</strong><strong>o</strong>. Firefox では、select代わりに生成された要素が表示され<option>foo</option>ます。これは、ブラウザの違いに対応しようとするjQueryに依存していると思います。

いずれにせよ、 のようなマークアップ<strong>f</strong><strong>o</strong><strong>o</strong>は、ラテン アルファベットのテキストにはほとんど無害ですが、ブラウザが各文字を独立したものとして扱い、独立したグリフ形式を使用する可能性があるため、アラビア語のテキストをひどく台無しにする可能性があります。参照。質問へHTML の部分的に色付けされたアラビア語.

jQueryをよく知っている人がこれを修正するための提案を思いつくことを願っています. 必要なのは、文字を のように区切らないようにすること<strong>f</strong><strong>o</strong><strong>o</strong>だけ<strong>foo</strong>ですfoo

于 2012-07-27T17:01:22.110 に答える
1

私はしませんでした;)jquery uiコンボボックスjavascriptでは、この機能があります

if (this.value && (!request.term || matcher.test(text))) return {
                                        label: text.replace(
                                        new RegExp("(?![^&;]+;)(?!<[^<>]*)(" +       $.ui.autocomplete.escapeRegex(request.term) + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<span></span>"),
                                        value: text,
                                        option: this
                                    };

「gi」を削除したので、コードは

if (this.value && (!request.term || matcher.test(text))) return {
                                        label: text.replace(
                                        new RegExp("(?![^&;]+;)(?!<[^<>]*)(" +       $.ui.autocomplete.escapeRegex(request.term) + ")(?![^<>]*>)(?![^&;]+;)", ""), "<span></span>"),
                                        value: text,
                                        option: this
                                    };

そして今はうまくいっています:D

于 2012-07-28T12:11:14.920 に答える
0

これは、文字セットではなく、使用するフォントによって異なります。

スクリーンショットからわかるように、「Sony」のラテン語の変種でさえわずかに異なります (Y に注意してください)。どちらの場合も同じフォントを使用するようにしてください。

于 2012-07-27T13:59:47.027 に答える