JavaScript: как проверить, является ли символ RTL?

Как программно проверить, обрабатывает ли браузер какой-либо символ как RTL в JavaScript?

Может быть, создать прозрачный DIV и посмотреть, где находится текст?

A bit of context. В Unicode 5.2 добавлена поддержка авестийского алфавита. Таким образом, если браузер поддерживает Unicode 5.2, он обрабатывает такие символы, как U + 10B00, как RTL (в настоящее время только Firefox поддерживает). В противном случае он обрабатывает эти символы как LTR, потому что это значение по умолчанию.

Как мне программно проверить это? Я пишу сценарий ввода Avestan и хочу изменить направление двунаправленного текста, если браузер слишком тупой. Но, если браузер поддерживает Unicode, параметры биди не должны быть переопределены (так как это позволит смешивать Avestan и кириллицу).

В настоящее время я делаю это:

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.

Ответы на вопрос(5)

Ваш ответ на вопрос