如何使用Javascript检测元素的文本方向?

问题描述 投票:0回答:4
javascript html right-to-left
4个回答
22
投票

getComputedStyle
在现代浏览器(IE9+ 和其他)中可用。像这样使用它:

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

这是一个完整的示例:

for (let id of ["foo", "baz", "jeez", "hello"]) {
  console.log(id, getComputedStyle(document.getElementById(id)).direction);
}
<div dir="ltr" id="foo">bar</div>

<div style="direction:ltr" id="baz">quux</div>

<div dir="ltr"><div id="jeez">whiz</div></div>

<div dir="auto" id="hello">hello</div>


1
投票

试试这个

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

style = document.defaultView.getComputedStyle(document.firstChild,null);
console.log(style.direction);

1
投票

@explosion-pills 答案是正确的。 我对 IE 兼容性做了更多研究,并得出以下结论:

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

这甚至应该适用于 Firefox 3.6,它需要

null
作为
getPropertyValue
的第二个参数。

因为这提供了更多信息,我想我会发布它,以防它对某人有帮助。


0
投票

您可以简单地使用

style
对象:

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

演示

请注意,DOM 的此对象仅代表元素的内联样式,它不适用于任何 css 样式表。

© www.soinside.com 2019 - 2024. All rights reserved.