1

Google Maps JavaScript API v3에 대한 간단한 jQuery 플러그인을 작성했습니다.Google Maps JavaScript API 오류 Internet Explorer에서

은 파이어 폭스, 크롬 (등)에서 일하고 있지만 인터넷 익스플로러 내가 오류가 다음 줄에 "개체가이 속성 또는 메서드를 지원하지 않습니다"8.

...

한다
map = new google.maps.Map(mapContainer, myOptions); 

나는 실용적인 예제 페이지를 온라인으로 보여주고있다. 나는 버킹검 궁전을 얻으려고하고있다! jquery.simplemap.js 파일의 코드가 축소 된 것은 아닙니다.

http://www.stevefenton.co.uk/cmsfiles/assets/File/simplemap.html

어떤 도움

이 많이 주시면 감사하겠습니다. 이 코드를 통해 자세한 디버그를 수행 한

UPDATE 그리고 실제로 크게 완전히 읽을 축소 된되고 Google 코드 내부 오류 - 오류가 이후로이 왜지도로드입니다 맵이 초기화됩니다. 나는 그것을 알 때 더 게시 할 것이다.

나는 정확한 위치를 표시하는지도를 받고 결과 플러그인, 다양한 일을 다시 주문하지만, 한

UPDATE2 때문에 Google지도 API에 깊은 발생하는 오류의 경우지도 마커 또는 콜 아웃을 추가 할 수 없습니다.

+0

지도가 어쨌든로드됩니다 ... – Hamish

+0

@Hamish - 동의합니다.지도가로드되지만 주소는 일치하지 않습니다. – Fenton

답변

6

좋아, 나는이 문제에 대한 해결책을 발견했다.

Google Maps API 내부에서 발생한 오류는 변수를 저장하는 데 사용되는 범위 때문에 발생합니다. "지도"고이 같은 API 사용 무언가에 대한 모든 예 ...

map = new google.maps.Map(mapContainer, myOptions); 

주 ...이 놀라운 신비 - 범위 변수 중 하나이며 나는 안에이 모든 코드를 실행하는거야 내 jQuery Plugin - 결과적으로 Google Maps API는 map 변수에서 핸들을 얻을 수 없다는 것입니다.

지도를 전역 변수로 선언하면 Google지도 API에서 액세스 할 수 있으며 모든 것이 완벽하게 작동하기 시작합니다.

그래서 수정은 ... 선언하는 글로벌 범위에서

var map; 

, 그래서 API는 그것을 얻을 수 있습니다.

0

타이밍의 문제라고 생각합니다. html로에서이 호출을 시도 :

$("#map").simplemap({ search: "Buckingham Palace, London", description: "Buckingham Palace,<br>London" }); 

준비에 :

$.ready(function() { 
    $("#map").simplemap({ search: "Buckingham Palace, London", description: "Buckingham Palace,<br>London" }); 
}); 
+0

예제에 이것을 추가했습니다. IE8은 여전히 ​​오류가 있습니다. ( – Fenton