JavaScript: jak sprawdzić, czy postać jest RTL?

Jak mogę programowo sprawdzić, czy przeglądarka traktuje jakiś znak jako RTL w JavaScript?

Może tworząc przezroczysty DIV i patrząc na miejsce umieszczenia tekstu?

Trochę kontekstu. Dodano Unicode 5.2 do obsługi alfabetu Avestan. Więc jeśli przeglądarka obsługuje Unicode 5.2, traktuje znaki takie jak U + 10B00 jako RTL (obecnie tylko Firefox). W przeciwnym razie traktuje te znaki jako LTR, ponieważ jest to ustawienie domyślne.

Jak programowo to sprawdzić? Piszę skrypt wejściowy Avestan i chcę zmienić kierunek bidi, jeśli przeglądarka jest zbyt głupia. Ale jeśli przeglądarka obsługuje Unicode, ustawienia bidi nie powinny być nadpisywane (ponieważ pozwoli to na miksowanie Avestanu i cyrylicy).

Obecnie to robię:

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';
    }
}

Ale, oczywiście, spowodowałoby to, że skrypt byłby mniej użyteczny po tym, jak Chrome i Opera zaczną obsługiwać Unicode 5.2.

questionAnswers(5)

yourAnswerToTheQuestion