How to detect text direction of element using Javascript?

前端 未结 4 775
渐次进展
渐次进展 2021-02-06 18:19

What\'s the best way to detect the text direction of an html element using Javascript? I would expect to get either \"rtl\" or \"ltr\".

相关标签:
4条回答
  • 2021-02-06 18:36

    Try this

    document.defaultView.getComputedStyle(document.getElementById('baz'),null)['direction'];
    

    OR

    style = document.defaultView.getComputedStyle(document.firstChild,null);
    console.log(style.direction);
    
    0 讨论(0)
  • 2021-02-06 18:46

    getComputedStyle is available in modern browsers (IE9+ and the others).

    getComputedStyle(document.getElementById('foo')).direction
    

    http://jsfiddle.net/m8Zwk/

    Reference to getComputedStyle on Mozilla Developer Network

    0 讨论(0)
  • 2021-02-06 19:00

    @explosion-pills answer is correct. I did some more research for IE compatibility and came up with the following:

    function getDirection(el) {
        var dir;
        if (el.currentStyle)
            dir = el.currentStyle['direction'];
        else if (window.getComputedStyle)
            dir = getComputedStyle(el, null).getPropertyValue('direction');
        return dir;
    }
    

    This should even work on Firefox 3.6 which requires null as the second parameter to getPropertyValue.

    Since this gives more information I thought I would post it in case it helps someone.

    0 讨论(0)
  • 2021-02-06 19:01

    You can simply use the style object:

    console.log(document.getElementById('baz').style.direction);
    

    DEMO

    Take note that this object of the DOM only represents the in-line styles of an element, it doesn't apply to any css style sheets.

    0 讨论(0)
提交回复
热议问题