0

我正在尝试使用 JavaScript 获取对图像映射中区域元素的引用,但在 IE8+ 中它不起作用。

我的 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:

document.getElementById("seg-1");

我像这样分配一个传统的事件处理程序:

document.getElementById("seg-1").onmouseup = function() {alert("onmouseup called");};

这适用于:

  • Safari 6 (OS X)
  • 铬 26 (OS X)
  • 火狐 21 (OS X)
  • 铬 27 (XP)
  • 铬 27 (W7)
  • 铬 (W8)。

但不在:

  • IE8 (XP)
  • IE9 (W7)
  • IE10 (W8)
  • 火狐 17 (XP)
  • 火狐 21 (W7)
  • 火狐 21 (W8)。

当我运行时:

console.log(document.getElementById("seg-1"));

我得到了上述工作的浏览器的元素,但我得到了上述不工作的浏览器中页面的 URL。

有什么想法可以让我完成这项工作吗?

PS:这里是 jsFiddle:http: //jsfiddle.net/Stimpski/Y5jeJ/

4

1 回答 1

0

尽管 , 看起来很讨厌console.log()document.getElementById("seg-1")但它指的是 HTML 元素,它只是显示 urlarea的方法。toString()

这对某些浏览器不起作用的原因是map. 您不应该#在. 仅在 的属性中需要。namemap#usemapimg

于 2013-05-30T04:56:08.357 回答