Skip to content

Instantly share code, notes, and snippets.

@mccrodp
Created June 2, 2017 06:49
Show Gist options
  • Save mccrodp/e25a94512e63ae77231f589b7918bb5e to your computer and use it in GitHub Desktop.
Save mccrodp/e25a94512e63ae77231f589b7918bb5e to your computer and use it in GitHub Desktop.
DOM Mutation Listener - Google Maps
var observeDOM = (function(){
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver,
eventListenerSupported = window.addEventListener;
return function(obj, callback){
if( MutationObserver ){
// define a new observer
var obs = new MutationObserver(function(mutations, observer){
if( mutations[0].addedNodes.length || mutations[0].removedNodes.length )
callback();
});
// have the observer observe foo for changes in children
obs.observe( obj, { childList:true, subtree:true });
}
else if( eventListenerSupported ){
obj.addEventListener('DOMNodeInserted', callback, false);
obj.addEventListener('DOMNodeRemoved', callback, false);
}
};
})();
// Observe a specific DOM element:
var main = document.getElementById('elm-main');
observeDOM(main ,function(){
var map = document.getElementById('map');
if (map && main.contains(map) && !map.hasChildNodes()) {
initMap();
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment