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>

(これは実際のコードの単純化されたバージョンですが、まったく同じように機能します。追跡目的で、DocumentIDやなどの非標準属性がいくつか必要でした)。Language

問題は、foo()クリックイベントで関数が起動しないことです。Language属性名を ie Lngfunctionに変更すると、すべて正常に動作します。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の非推奨の language属性とHTMLElementのlang属性を混同しないでください。

PS誰かが言ったように、HTML5 data-* attributesを使用する方が良いです。

于 2012-05-30T15:15:51.713 に答える
0

リンクの言語を指定したい場合は、代わりにこの属性を使用してはどうですか?

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

于 2012-05-30T15:26:51.633 に答える