7

में Google मानचित्र एपीआई लोड विफलता ("google 'अपरिभाषित है") जब मैं स्क्रिप्ट टैग में http://maps.google.com/maps/api/js?sensor=false लोड करता हूं, तो क्रोम, सफारी, फ़ायरफ़ॉक्स और आईई 9 में सब कुछ मेरे लिए ठीक काम करता है।आईई 8

हालांकि, जब मैं संगतता मोड में IE9 में देखने के लिए (या, मैं, बताया हूँ IE8 में) मानचित्र लोड नहीं करता है और " 'google' अपरिभाषित है" कंसोल में लॉग होता है।

यहाँ लाइन है कि एक टिप्पणी के साथ की पहचान त्रुटि ट्रिगर कर रहा है के साथ प्रासंगिक कोड है,:

<html> 
<head> 
<title>Test Map</title> 
<script type="application/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
</head> 
<body> 
<div id="map_canvas"></div> 
<script type="text/javascript"> 
var lat=37.763154; 
var lon=-122.457941; 
var initialZoom=17; 
var mapTypeId = 'Custom Map'; 
var mapStyle = [{featureType:"landscape", elementType:"all", stylers:[{hue:"#dae6c3"},{saturation:16},{lightness:-7}]}, 
       {featureType:"road", elementType:"geometry", stylers:[{hue:"#ffffff"},{saturation:-100},{lightness:100}]}]; 

//**The error is tripped in this next line, again only in IE9 compatibility mode or IE8*  
var styledMap = new google.maps.StyledMapType(mapStyle); 

var mapType = new google.maps.ImageMapType({ 
    tileSize: new google.maps.Size(256,256), 
    getTileUrl: function(coord,zoom) { 
     return "img/tiles/"+zoom+"/"+coord.x+"/"+coord.y+".png"; 
    } 
}); 
var map = new google.maps.Map(document.getElementById("map_canvas"), 
     {center:new google.maps.LatLng(lat,lon), 
     mapTypeId:google.maps.MapTypeId.ROADMAP, 
     zoom:initialZoom, 
     mapTypeControl:false}); 
map.overlayMapTypes.insertAt(0, mapType); 

map.mapTypes.set(mapTypeId, styledMap); 
map.setMapTypeId(mapTypeId); 
</script> 
</body> 
</html> 

तो किसी कारण से, है, और केवल IE9 + संगतता मोड और IE8 में, स्क्रिप्ट टैग को निर्दिष्ट http://maps.google.com/maps/api/js?sensor=false शरीर में बाद में एम्बेडेड स्क्रिप्ट से पहले लोड नहीं हो रहा है और/या निष्पादित नहीं हो रहा है।

क्या अन्य लोग दोहराने में सक्षम हैं? मैं इस समस्या को कैसे ठीक करूं?

+0

आप Fiddler में क्या देखते हैं? – SLaks

+0

मुझे आपकी गलती नहीं लगता है। इसकी आईई की संगतता मोड जो सक्रिय स्क्रिप्ट को अवरुद्ध कर रहा है। (शायद ...) –

उत्तर

3

समस्या यह स्पष्ट रूप से है कि आईई 8 "एप्लिकेशन/जावास्क्रिप्ट" नहीं है। मैंने <head> अनुभाग में <script> टैग में इसे "टेक्स्ट/जावास्क्रिप्ट" में बदल दिया और अब मेरा कोड काम करता है। और, ज़ाहिर है, अगर मैं इसे वापस "एप्लिकेशन/जावास्क्रिप्ट" में बदलता हूं, तो यह काम करना बंद कर देता है।

1

आईई आपके स्थानीय मशीन पर जेएस निष्पादित करने का प्रयास कर रहा है, जबकि अन्य ब्राउज़र इसे टेक्स्ट फ़ाइल के रूप में खोल रहे हैं। जहां भी सामान डिफ़ॉल्ट रूप से डाउनलोड होते हैं, आप आईई से डाउनलोड जेएस पा सकते हैं।

संपादित करें: अद्यतनों के प्रकाश में, इस पहेली को एक प्रकार का काम करने के लिए देखें। http://jsfiddle.net/h6rc3/

+0

ओओफ, अब मैं देखता हूं। मुझे निस्सार लगता है। (मैं स्पष्ट रूप से IE का उपयोग नहीं करता हूं।) ठीक है, तो यह समस्या नहीं है। मुझे अपना प्रश्न अपडेट करना होगा। – Trott

+0

@ टॉट: कोई चिंता नहीं, मुझे खुद को आईई ढूंढना पड़ा :) –

1

सुनिश्चित करें कि आईई ऑफ़लाइन मोड में नहीं है। लगता है कि ब्राउजर इंटरनेट से कनेक्ट नहीं हो रहा है।

+0

निश्चित रूप से ऑफलाइन मोड में नहीं, लेकिन यह एक अच्छा अनुमान है। जब मैं IE9 में संगतता मोड बंद करता हूं, तो यह काम करता है।इसे चालू करें, कोई नक्शा नहीं है और मुझे कंसोल में "google 'अपरिभाषित" मिलता है। यह सिर्फ संगतता मोड है (या, मेरे उपयोगकर्ता के अनुसार, IE8 का उपयोग करके) जो इसे ट्रिगर करता है। – Trott

+0

धन्यवाद @brenjt, आपके संकेत ने मेरी समस्या हल की। – Jaikrat

1

मेरे Google मानचित्र v3 साइट आईई 9 संगतता दृश्य मोड, आईई 8 और आईई 7 में काम करना बंद कर दिया।

कारण: जावा का उपयोग करके जावा-स्क्रिप्ट में त्रुटि केवल स्क्रिप्ट की जांच के लिए IE F12 डेवलपर टूल का उपयोग करते समय पकड़ा गया। यहां अपमानजनक रेखा है। त्रुटि टोकन, कक्षा से एकल उद्धरण गायब था।

$('<tr>', { 'class': country }).appendTo(tableSelector).append(h1).append(h2); 

पहले तो मुझे एक झूठी नेतृत्व अपनाई, सोच यह एक प्रमुख के अलावा था = http://maps.googleapis.com/maps/api/js?key=MY_KEY_FROM_API_CONSOLE&sensor=false

सबक है: उपकरणों का उपयोग, Firebug या IE उपकरण या जो कुछ भी है, अपने जावास्क्रिप्ट जांच करने के लिए शुरू की के लिए मुद्दे।

2

एक अनुमान यह है कि आप पृष्ठ पर https काम करते हैं जबकि Google से अनुरोध http है। Google अनुरोध को https में कनवर्ट करें और त्रुटि गायब हो जाएगी। यह मेरे लिए काम किया।

देखें: Possible solution