在 HTML 定位点中指定“语言”属性是否会更改事件行为
Does specifying 'language' attribute in HTML anchor changes events behavior?
我的网站上有以下JS代码:
function foo(link) {
alert('ID=' + link.DocumentID + '; Lang=' + link.Language);
}
每次单击以下链接时都应调用:
<a href='http://www.example.com' DocumentID='someDocId' Language='en' onclick='foo(this);'>Example page</a>
(这只是我实际代码的简化版本,但它的工作方式完全相同;我需要一些非标准属性,例如用于跟踪目的的DocumentID
和Language
)。
问题是foo()
函数不会在单击事件时触发。当我将Language
属性名称更改为即 Lng
功能一切正常。我已经在IE7/8和FF(最新版本)上对其进行了测试。
根据 W3C HTML4 标准Language
属性对锚标记无效。我知道它对<script>
标签有效,但我没有看到任何关系。
有谁知道为什么设置 Language
属性会阻止触发onclick
事件(我没有尝试过其他事件类型,但它们也可能受到影响)?
只有 IE 7/8 同步自定义属性和属性。
link.href; // 'http://www.example.com'
link.language; // undefined (except in IE 7/8)
最好使用 getAttribute:
link.getAttribute('href'); // 'http://www.example.com'
link.getAttribute('language'); // 'en'
属性在 HTML 中不区分大小写,在 XML 文档(包括 XHTML)中区分大小写。
不要将 HTMLScriptElement 上已弃用的语言属性与 HTMLElement 上的 lang 属性混淆。
附言就像有人已经说过的,最好使用 HTML5 data-* 属性。
如果要指定链接的语言,改用此属性怎么样?
http://www.w3.org/TR/html401/struct/links.html#adef-hreflang
相关文章:
- 是否可以从父类访问子类的属性
- d3.js圆的半径是否可以由样式属性指定
- 检查对象的所有属性是否未定义
- 消隐数组元素是否生成自己的属性
- 是否可以使用CSS分配数据属性
- 检查来自不同数组的两个元素的一个属性是否相等
- 是否有任何内置方法可以更改JavaScript对象'的属性设置为某个值
- 正在检查对象javascript中是否存在嵌套属性
- 正在检查属性的属性是否存在
- html元素是否具有内置的属性
- jQuery检查CSS宽度是否大于0,然后添加CSS属性
- 是否可以在 HTML 标记中插入您的属性
- 在 Forerunner 数据库集合中创建主键时,key 属性是否可以位于集合对象的对象内部
- 在HTML5中是否可以有多个数据{名称}属性
- 变量/对象是否按值传递,为什么我不能在 javascript 中使用变量更改对象的属性
- 是否有脚本/代码可以一次将链接属性添加到多个链接
- 使用 Chai - 如何检查对象属性是否包含 DOM 元素
- Ember 1.0 预发行版支持属性是否已更改
- 是否可以在 Polymer 中的
节点上使用自定义属性以获得漂亮的 API - HTML 中是否存在属性节点