我正在使用W3C標準地理定位API的應用程序,但我不能在我的生活中使它在我的Windows 7和XP PC上的Safari上工作。它可以在我的iPad和iPhone上正常工作。它也適用於Chrome(5,6,7和Canary版本)和Firefox(3.6)。我沒有Mac,所以我無法測試它。 IE瀏覽器不支持地理定位,所以也包括在內。地理定位不能在Windows 7/XP上的Safari 5.x上工作
我創建了一個精簡版,我將它託管在Google Apps引擎上,以便您可以查看代碼:http://html5-geolocator.appspot.com/。所有(簡化)JavaScript都在html中,因此您應該能夠右鍵單擊並調試/查看源代碼。
這幾乎是對Google Map API DevGuide上的例子的直接轉換。有趣的是,谷歌託管的例子在Windows 7上也不適用於Safari 5.0.x(但它們在所有其他平臺上工作正常,與我的應用程序相同),例如http://code.google.com/apis/maps/documentation/javascript/examples/map-geolocation.html展示與我的APP完全相同的問題,沒有地圖出現,網頁只是保持灰色。
通過一些調試(警告(「我在這裏」):-)似乎在Safari中,它執行navigator.geolocation.getCurrentPosition(myCallback),但它似乎永遠不會到達myCallback ...就好像它從不從getCurrentPosition返回。我還看到,如果我在一夜之間離開瀏覽器窗口,當我在早上回到瀏覽器窗口時,警報和地圖出現(儘管並非總是)。我也嘗試添加一個errorCallback navigator.geolocation.getCurrentPosition(myCallback,errorCallback),但它也永遠不會執行,再次表明它永遠不會從getCurrentPosition調用返回。
任何人有任何想法,爲什麼會發生這種情況?
編輯: 只是做了一些更多的測試,我添加了超時選項(navigator.geolocation.getCurrentPosition(myCallback,errorCallback,{timeout:5000});),事實上它總是超時,無論如何我設置了多高,因此它永遠不會從Google地理位置服務返回,但爲什麼?
任何人的任何線索? – mvilrokx 2010-09-16 04:57:17
我可以確認完全相同的結果。鉻甜,Firefox 3.5甜,Safari 5沒有骰子。 :( – ADAM 2010-10-13 19:07:30
也FYI我運行雪豹 – ADAM 2010-10-13 19:07:58