次の HTML を含む Web ページにイメージ マップがあります。
<div class="container">
<img src="image.png" usemap="#hotspots">
<map name="#hotspots">
<area id="seg-1" href="" shape="poly" coords="167,286,113,379,320,379,266,286,167,286"/>
<area... />
<area... />
<area... />
...
</map>
</div>
そして、次の JavaScript を使用して area 要素への参照を取得しようとしています。
var seg1 = document.getElementById("seg-1");
私は正常に参照を取得します:
- サファリ 6 (OS X)
- Chrome 26 (OS X)
- Firefox 21 (OS X)
- クロム 27 (XP)
- クローム27(W7)
- クロム (W8)。
しかし、そうではありません:
- IE8 (XP)
- IE9 (W7)
- IE10 (W8)
- Firefox 17 (XP)
- Firefox 21 (W7)
- Firefox 21 (W8)。
動作する場合は HTML area 要素への参照を取得しますが、動作しない場合はドキュメントへの参照を取得します。コンソール ログ メッセージは次のとおりです。
働く:
HTMLAreaElement
動作していません:
http://localhost/index.html
私はこれを回避する方法を知っていますが、なぜこれが起こっているのか理解しようとしていますか? getElementById がイメージ マップ エリア要素に対して機能しないのはなぜですか?
ご意見ありがとうございます。