2009-07-04 16 views
8

Harita yüklendiğinde bu hatayı alt text http://img239.imageshack.us/img239/6936/jserror.png alıyorum.Javascript Açık Katmanlarda "belirtilmemiş hata"

return!!(document.namespaces);

Ben bunu yeniden denedi:

hata orijinal olduğunu, değiştirilmemiş OpenLayers.js bu hat üzerinde dosya

return (typeof(document.namespaces) != 'undefined');

ve daha sonra çalıştı ama Belge.namespaces için daha fazla başvuruda aynı "belirtilmemiş" hatalar alıyorum:

if(typeof(document.namespaces.olv) == 'undefined') { ...

ama aynı "belirtilmemiş hata" olsun:

Ben bu yeniden yazmayı denedim.

Bu hatayı sadece Internet Explorer'da (7'de test ettim) Firefox'ta değil.

Herhangi bir ipucu?

Teşekkürler.

cevap

6

Çözümü buldum.

sorun DOM jQuery ile hazır iken haritasını oluşturarak olmasıydı:

yapmanız gereken tek şey yüklendiğinde etkinliğinde sonra haritayı yaratmaktır
$(document).ready(function(){ ... //create map here [WRONG] 

:

window.onload = function() { ... // create map here [CORRECT] 
+2

sizinkiyle tüm .onload olayları üzerine yazma pek o kadar $ yerine tercih Biz windows.onload ile Firefox'ta sorunları vardı – Art

+0

yapmak için iyi bir şey, (pencere) .bind ("load", işlev() { – eclipse31

0

Internet Explorer ile ilgili sorun, sayfa belgeye hazır olduğunda veya pencere yüklendiğinde, M $ tarayıcısı henüz harita kanvasının boyutlarını belirleyemez.

<div id="map" style="width:250px;height:250px"></div> 
+0

Teşekkürler, sen benim kurtardın popo! Sadece yüksekliği ve genişliğini değil YMMV'yi ayarlamam gerekiyordu. –

7

asıl sorun (çünkü $ (document) .ready tetikleme bazen zaman document.namespaces IE8 hazır olmamasıdır: Bu geçici bir çözüm istiyorsanız, siz de harita div boyutlarını seçeneklerinden birini deneyin VML)

Bunun yerine kullanabilirsiniz:

jQuery(window).load(function() {} ...);