如何使用Javascript检测元素的文本方向
How to detect text direction of element using Javascript?
使用Javascript检测html元素的文本方向的最佳方法是什么?我希望得到"rtl"或"ltr"。
<div dir="ltr" id="foo">bar</div>
<div style="direction:ltr" id="baz">quux</div>
<div dir="ltr"><div id="jeez">whiz</div></div>
我如何测试"foo","baz"或"jeez"的方向?
getComputedStyle
在现代浏览器(IE9+和其他浏览器)中可用。
getComputedStyle(document.getElementById('foo')).direction
http://jsfiddle.net/m8Zwk/getComputedStyle在Mozilla Developer Network上的参考
试试这个
document.defaultView.getComputedStyle(document.getElementById('baz'),null)['direction'];
或
style = document.defaultView.getComputedStyle(document.firstChild,null);
console.log(style.direction);
@ explosive -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
的第二个参数。
既然这提供了更多的信息,我想我应该把它贴出来,以防它对别人有帮助。
您可以简单地使用style
对象:
console.log(document.getElementById('baz').style.direction);
请注意,这个DOM对象只表示元素的内联样式,它不适用于任何css样式表。
相关文章:
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- Phaser.js中的文本方向
- cleditor中从右到左的文本方向
- 将cleditor的文本方向从右向左更改
- FabricJS从右向左的文本方向
- 在方向面板googlemapsv3中自定义文本
- 谷歌地图v3也显示错误的方向和文本
- jquery移动设备方向更改不调整文本区域的大小
- 在firefox操作系统中,根据屏幕方向调整文本区域的大小
- Raphael JS:文本元素向错误的方向拖放
- JavaScript CSS旋转文本方向
- 如何使用javascript/jquery改变每一行文本的方向
- 动态crm:用javascript改变文本方向
- 如何使用Javascript检测元素的文本方向
- 如何根据输入文本语言自动设置文本方向?
- 我怎么能改变方向的文本区域时,有波斯字符
- 如何在javascript、谷歌地图中使用setPanel()添加位置搜索框和文本方向
- Flexslider-如何使用单个方向Nav使两个滑块一起工作(图像和段落文本)