Wait for dom:loaded to fire before initialising the map

Also very all our use of window.onload and switch to using dom:loaded
instead where we can - the main case where we can't is when using a
vector layer as IE will fail unless the page is completely loaded.
This commit is contained in:
Tom Hughes 2011-07-07 10:02:42 +01:00
parent cb4f1e62a0
commit 7e4ceec192
3 changed files with 10 additions and 13 deletions

View file

@ -57,7 +57,8 @@
var bbox = new OpenLayers.Bounds(minlon, minlat, maxlon, maxlat);
bounds.extend(bbox);
box = addBoxToMap(bbox, "<%= edit.id %>", true);
addBoxToMap(bbox, "<%= edit.id %>", true);
<% end %>
vectors.events.on({

View file

@ -22,7 +22,7 @@
<%= render :partial => preferred_editor %>
<script type="text/javascript" defer="defer">
<script type="text/javascript">
function maximiseMap() {
$("left").style.display = "none";
$("greeting").style.display = "none";
@ -53,9 +53,8 @@
handleResize();
}
handleResize();
document.observe("dom:loaded", handleResize);
Event.observe(window, "load", handleResize);
Event.observe(window, "resize", handleResize);
</script>
<% end %>

View file

@ -120,7 +120,7 @@ end
<%= render :partial => 'resize' %>
<script type="text/javascript" defer="defer">
<script type="text/javascript">
var marker;
var map;
@ -142,8 +142,7 @@ end
setMapExtent(bbox);
<% if box %>
// IE requires Vector layers be initialised on page load, and not under deferred script conditions
Event.observe(window, 'load', function() { addBoxToMap(bbox) });
Event.observe(window, "load", function() { addBoxToMap(bbox) });
<% end %>
<% else %>
var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
@ -174,8 +173,7 @@ end
url += "/full";
<% end %>
// IE requires Vector layers be initialised on page load, and not under deferred script conditions
Event.observe(window, 'load', function() { addObjectToMap(url, <%= object_zoom %>) });
Event.observe(window, "load", function() { addObjectToMap(url, <%= object_zoom %>) });
<% end %>
map.events.register("moveend", map, updateLocation);
@ -263,10 +261,9 @@ end
<% end %>
}
mapInit();
Event.observe(window, "load", installEditHandler);
Event.observe(window, "load", handleResize);
document.observe("dom:loaded", mapInit);
document.observe("dom:loaded", installEditHandler);
document.observe("dom:loaded", handleResize);
Event.observe(window, "resize", function() {
var centre = map.getCenter();