什么是检测使用JavaScript的HTML元素的文本方向的最佳方式? 我希望得到任何“RTL”或“升”。
<div dir="ltr" id="foo">bar</div>
<div style="direction:ltr" id="baz">quux</div>
<div dir="ltr"><div id="jeez">whiz</div></div>
我将如何测试的“富”,“巴兹”或“哎呀”的方向?
什么是检测使用JavaScript的HTML元素的文本方向的最佳方式? 我希望得到任何“RTL”或“升”。
<div dir="ltr" id="foo">bar</div>
<div style="direction:ltr" id="baz">quux</div>
<div dir="ltr"><div id="jeez">whiz</div></div>
我将如何测试的“富”,“巴兹”或“哎呀”的方向?
getComputedStyle
是在现代浏览器(IE9 +和其他人)使用。
getComputedStyle(document.getElementById('foo')).direction
http://jsfiddle.net/m8Zwk/
参考上的getComputedStyle Mozilla开发者网络
试试这个
document.defaultView.getComputedStyle(document.getElementById('baz'),null)['direction'];
要么
style = document.defaultView.getComputedStyle(document.firstChild,null);
console.log(style.direction);
@爆丸答案是正确的。 我做了一些更多的研究,对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
。
由于这提供了更多的信息,我想情况下,它可以帮助别人我将它张贴。
你可以简单地使用style
对象:
console.log(document.getElementById('baz').style.direction);
DEMO
请注意该DOM的这个对象只能是在用线风格的元素,它并不适用于任何CSS样式表。