如何确定元素's语言与Javascript
How to determine an element's language with Javascript?
根据规范,语言是从最近的祖先元素继承的,该元素设置了lang
。那么,我该如何获得这些后裔的语言呢?
我正在设置具有lang
属性的语言:
<div id="outer" lang="es">
<div id="inner">¿Por qué?</div>
</div>
并尝试使用lang
属性访问它:
alert(document.getElementById('outer').lang);
alert(document.getElementById('inner').lang);
我很快注意到内部div的lang
属性不是继承的语言(或者它不是继承的;不知道)。这把小提琴展示了我所看到的行为。
如何使用Javascript确定元素的语言?我真的很想利用lang
属性的继承,因为我也需要它来处理屏幕阅读器。
从您链接到的规范:
要确定节点的语言,用户代理必须查看最近祖先元素(如果节点元素),该元素在XML名称空间集合中具有
lang
属性或者是HTML元素并且在没有名称空间属性集合中具有CCD_ 7。那个属性指定节点的语言(无论其值)。
从另一个元素继承并不意味着为元素本身设置了属性。因此,您的代码也必须找到最近的具有lang
属性的父级(如果存在)。如果这听起来有问题,请看这个问题。
这里有一个函数,它将返回任何元素的最近祖先的"lang"属性的值,如果没有找到,则返回未定义的值:
function elementLang(el) {
while (el) {
if (el.hasAttribute('lang')) {
return el.getAttribute('lang');
}
el = el.parentElement;
}
}
// From your example jsFiddle...
elementLang(document.getElementById('inner')); // => "es"
elementLang(document.getElementById('outer')); // => "es"
elementLang(document.getElementById('output')); // => undefined
相关文章:
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 我想在Javascript中探索类似C语言的字符串的整个字符
- 为现有Roslyn语言lexer/parser选择基于javascript的代码编辑器
- Javascript/jQuery替换tamil语言输入框中的最后一个单词
- Porting duff's设备从C语言转换为JavaScript
- 我可以用JavaScript判断访问者是否'的语言环境遵循美国风格或世界其他地区's风格
- TinyMCE使用Javascript动态更改语言
- JavaScript 和其他使用松散定义的变量的语言
- 如何通过JavaScript正则表达式匹配不同语言中的单词
- V8 javascript 引擎是否将所有 javascript 编译为机器语言
- V8 JavaScript 引擎实现语言
- 使用JavaScript自动更改键盘语言,没有IE就不起作用
- 是否有一种功能齐全的范式语言可以转换为JavaScript
- 静态多语言javascript重定向保持重新加载页面
- 如何使用客户端语言(JavaScript)在SharePoint中编写/修改xml文件
- & lt;脚本语言=“JavaScript"祝辞添加
- 检测用户输入语言javascript
- 语言=“javascript"与类型=“文本/ javascript"
- 如何保护从其他语言(javascript)调用的java中的方法签名
- 多语言javascript应用程序的不同方法是什么?