2013-05-29 1 views
0

나는 다음과 같은 HTML과 웹 페이지에 이미지 맵이 있습니다왜 IE의 영역 요소를 반환하지 이미지 맵 영역에서 getElementById는 무엇입니까?

<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> 

을 그리고 나는 다음과 같은 자바 스크립트와 지역 요소에 대한 참조를 얻으려고 성공적으로

var seg1 = document.getElementById("seg-1"); 

I을

  • 사파리 6 (OS 용 X)
  • 크롬 26 (OS X의) 01,235
  • :의 기준을 얻을 16,
  • 파이어 폭스 (21) (OS의 X)
  • 크롬 27 (XP)
  • 크롬 27 (W7)
  • 크롬 (W8).

그러나 NOT IN :

  • IE8 (XP)
  • IE9 (W7)
  • IE10 (W8)
  • 파이어 폭스 17 (XP)
  • 파이어 폭스 21 (W7)
  • 파이어 폭스 21 (W8).

그것은 내가 HTML 영역 요소에 대한 참조를 가져 작동하지만, 그것이 작동하지 않을 때 문서에 대한 참조를 가져옵니다.

http://localhost/index.html 

내가이 문제를 해결하는 방법을 알고,하지만 난 이런 일이 왜 이해하려고 노력 해요 :

작업 :

HTMLAreaElement 

것은 작동하지 여기에 콘솔 로그 메시지는 ? getElementById가 이미지 맵 영역 요소에서 작동하지 않는 이유는 무엇입니까? 당신의 생각의에 대한

감사합니다.

답변

1

그것은 단순히이 보인다 그 브로우저의 영역 요소의 "toString"방법과 관련이있다. 어떤 이유로 든 href의 파생 값을 인쇄합니다. 그러나 그것은 인쇄 된 것입니다. getElementById의 실제 결과는 여전히 area 요소입니다. 당신이 그 브라우저에서 console.log(document.getElementById('seg-1').shape)를 사용하는 경우

예를 들어, 그것은 여전히 ​​제대로 "폴리."인쇄합니다 그것에 대해

+0

감사합니다. 그것은 매우 흥미로운 행동입니다. – Stimpson