About 1 time in 10, I get an error during my $(document).ready
callback because Google Maps' loader hasn't pulled in all of its
JavaScript dependencies yet.

Using Web Developer > View Source > View Generated Source in Firefox,
here's what the head of my document looks like when I get such an
error.

 <head>
   <script src="http://maps.google.com/maps?
file=api&amp;v=3&amp;sensor=false&amp;key=MY_API_KEY" type="text/
javascript"></script>
+   <script src="http://maps.gstatic.com/intl/en_us/mapfiles/176c/
maps2.api/main.js" type="text/javascript"></script>
   <script src="scripts/jquery.js" type="text/javascript"></script>
   <script src="scripts/jquery.jmap.js" type="text/javascript"></
script>
   <script src="scripts/initialize.js" type="text/javascript"></
script>
 </head>

The line starting with + was injected by Google Maps with
document.write. The call to $(document).ready is in initialize.js

 jQuery(document).ready(function($){
   jQuery('#map1').jmap('init', {'mapCenter':[37.5, -95.7], 'mapZoom':
4}); // CONUS
 });

#map1 references an empty div to hold the map. I got jquery.jmap.js
from git://github.com/digitalspaghetti/jmaps.

The error is G_NORMAL_MAP is not defined at line 104 of
jquery.jmap.js, but I think jquery.jmap.js is an innocent victim here.

And here's what the head looks like when everything's loaded before my
$(document).ready callback fires:

 <head>
   <script src="http://maps.google.com/maps?
file=api&amp;v=3&amp;sensor=false&amp;key=MY_API_KEY" type="text/
javascript"></script>
+   <script src="http://maps.gstatic.com/intl/en_us/mapfiles/176c/
maps2.api/main.js" type="text/javascript"></script>
+   <style type="text/css">@media print{.gmnoprint{display:none}}
@media screen{.gmnoscreen{display:none}}</style>
+   <script src="http://maps.gstatic.com/intl/en_us/mapfiles/176c/
maps2.api/mod_jslinker.js" charset="UTF-8" type="text/javascript"></
script>
   <script src="scripts/jquery.js" type="text/javascript"></script>
   <script src="scripts/jquery.jmap.js" type="text/javascript"></
script>
   <script src="scripts/initialize.js" type="text/javascript"></
script>

+   <script src="http://maps.gstatic.com/cat_js/intl/en_us/mapfiles/
176c/maps2.api/%7Bmod_drag,mod_ctrapi%7D.js" charset="UTF-8"
type="text/javascript"></script>
+   <script src="http://maps.gstatic.com/intl/en_us/mapfiles/176c/
maps2.api/mod_apiiw.js" charset="UTF-8" type="text/javascript"></
script>
+   <script src="http://maps.gstatic.com/intl/en_us/mapfiles/176c/
maps2.api/mod_exdom.js" charset="UTF-8" type="text/javascript"></
script>
 </head>

The Net tab in Firebug shows that the extra GMaps scripts have not
been loaded in the failure case.

Any suggestions? Does script injection with document.write play well
with $(document).ready?

This is driving me nuts. Any help appreciated.

[Also sent to jquery-en]

/George V. Reilly
Seattle, WA

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Maps API" group.
To post to this group, send email to google-maps-api@googlegroups.com
To unsubscribe from this group, send email to 
google-maps-api+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-maps-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to