也许可以创建一个透明的DIV并查看文本放置的位置吗?
有一些背景信息。Unicode 5.2添加了对Avestan字母表的支持。因此,如果浏览器支持Unicode 5.2,它会将像U+10B00这样的字符视为RTL(目前只有Firefox支持)。否则,它将把这些字符视为LTR,因为这是默认设置。
如何以编程方式检查这一点?我正在编写一个Avestan输入脚本,并希望在浏览器太笨的情况下重写双向文本方向。但是,如果浏览器支持Unicode,则不应覆盖双向文本方向设置(因为这将允许混合使用Avestan和Cyrillic)。
我目前是这样做的:
var ua = navigator.userAgent.toLowerCase();
if (ua.match('webkit') || ua.match('presto') || ua.match('trident')) {
var input = document.getElementById('orig');
if (input) {
input.style.direction = 'rtl';
input.style.unicodeBidi = 'bidi-override';
}
}
但很明显,在Chrome和Opera开始支持Unicode 5.2之后,这将使脚本的可用性降低。
UnicodeData.txt
和bsearch()
获取数据。 - hippietrailkeydown
事件的keyCode
并将其与这17种语言的键码范围进行匹配...http://en.wikipedia.org/wiki/Right-to-left - vsync