1

我已經爲Google Maps JavaScript API v3編寫了一個非常簡單的jQuery插件。Google Maps JavaScript API錯誤在Internet Explorer中

它工作在Firefox,Chrome瀏覽器(等人),但不是Internet Explorer 8

我得到的錯誤是「對象不支持此屬性或方法」在下面的行...

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

我已經把一個工作示例頁面在線展示......我試圖讓白金漢宮!你可以在jquery.simplemap.js文件中看到後面的代碼,它沒有被縮小。

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

任何幫助將非常感激。

UPDATE

我已經通過這個代碼做了詳細的調試,它實際上是谷歌的代碼,這在很大程度上微細化以及完全無法辨認裏面的錯誤 - 這就是爲什麼地圖加載,如誤差後地圖被初始化。當我知道它時,我會張貼更多。

UPDATE2

我已經重新排列各種事物的插件,從而導致越來越地圖,以顯示正確的位置,但由於發生的谷歌地圖API在深錯誤時,地圖被初始化,我不能添加標記或標註。

+0

奇怪的是,地圖加載無論如何... – Hamish 2011-01-31 23:50:49

+0

@Hamish - 同意,地圖加載,但地址不。 – Fenton 2011-02-01 08:43:44

回答

6

好吧,我已經找到了解決這一問題。

從Google Maps API內部引發的錯誤是由用於存儲地圖的變量的範圍引起的。所有的API使用像這樣的例子中...

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

注意,「地圖」在這些奇妙神祕的範圍變量之一,另外,我跑所有這些代碼裏面我jQuery插件 - 最終的結果是Google Maps API無法獲取地圖變量的句柄。

通過將map聲明爲全局變量,Google Maps 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" }); 
});