0

我的网站上有以下 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>

(这只是我实际代码的简化版本,但它的工作原理完全相同;我需要一些非标准属性,例如DocumentIDLanguage用于跟踪目的)。

问题是该foo()函数不会在点击事件时触发。当我将Language属性名称更改为 ieLng函数时,一切正常。我已经在 IE7/8 和 FF(最新版本)上对其进行了测试。

根据W3C HTML4 标准 Language属性对锚标记无效。我知道它对<script>标签有效,但我没有看到任何关系。

有谁知道为什么设置Language属性会阻止触发onclick事件(我没有尝试过其他事件类型,但它们也可能受到影响)?

4

2 回答 2

2

只有 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属性混淆。

PS 就像有人已经说过的,最好使用 HTML5 data-* 属性

于 2012-05-30T15:15:51.713 回答
0

如果你想指定链接的语言,那么使用这个属性怎么样?

http://www.w3.org/TR/html401/struct/links.html#adef-hreflang

于 2012-05-30T15:26:51.633 回答