我在网页上有一个带有以下HTML的图像映射:
<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获取对区域元素的引用:
var seg1 = document.getElementById("seg-1");
我成功地获得了参考:
但不在:
当它工作时,我得到对HTML区域元素的引用,但是当它不起作用时,我得到对该文档的引用。以下是控制台日志消息:
工作:
HTMLAreaElement
不工作:
http://localhost/index.html
我知道如何解决这个问题,但我想知道为什么会这样?为什么getElementById不适用于图像映射区域元素?
感谢您的任何想法。
答案 0 :(得分:1)
这似乎与这些浏览器中的area元素上的“toString”方法有关。无论出于何种原因,它都会打印href
的派生值。然而,这就是印刷品。 getElementById
的实际结果仍然是区域元素。
例如,如果您在这些浏览器中使用console.log(document.getElementById('seg-1').shape)
,它仍会正确打印“poly”。