WordPress/wp-includes/js/customize-loader.js
2012-04-18 20:58:24 +00:00

1 line
1.9 KiB
JavaScript

if(typeof wp==="undefined"){var wp={}}(function(a,c){var b=wp.customize,d;d={supports:{history:!!(window.history&&history.pushState),hashchange:("onhashchange" in window)&&(document.documentMode===undefined||document.documentMode>7)},initialize:function(){this.body=c(document.body).addClass("customize-support");this.window=c(window);this.element=c('<div id="customize-container" class="wp-full-overlay" />').appendTo(this.body);c("#wpbody").on("click",".load-customize",function(e){e.preventDefault();d.open(c(this).attr("href"))});if(this.supports.history){this.window.on("popstate",d.popstate)}if(this.supports.hashchange){this.window.on("hashchange",d.hashchange)}},popstate:function(g){var f=g.originalEvent.state;if(f&&f.customize){d.open(f.customize)}else{if(d.active){d.close()}}},hashchange:function(g){var f=window.location.toString().split("#")[1];if(f&&0===f.indexOf("customize=on")){d.open(wpCustomizeLoaderL10n.url+"?"+f)}if(!f&&!d.supports.history){d.close()}},open:function(e){if(this.active){return}this.active=true;this.iframe=c("<iframe />",{src:e}).appendTo(this.element);this.messenger=new b.Messenger(e,this.iframe[0].contentWindow);this.messenger.bind("ready",function(){d.messenger.send("back",wpCustomizeLoaderL10n.back)});this.messenger.bind("close",function(){if(d.supports.history){history.back()}else{if(d.supports.hashchange){window.location.hash=""}else{d.close()}}});this.element.fadeIn(200,function(){var f=e.split("?")[1];d.body.addClass("customize-active full-overlay-active");if(d.supports.history&&window.location.href!==e){history.pushState({customize:e},"",e)}else{if(!d.supports.history&&d.supports.hashchange&&f){window.location.hash=f}}})},close:function(){if(!this.active){return}this.active=false;this.element.fadeOut(200,function(){d.iframe.remove();d.messenger.destroy();d.iframe=null;d.messenger=null;d.body.removeClass("customize-active full-overlay-active")})}};c(function(){if(window.postMessage){d.initialize()}});b.Loader=d})(wp,jQuery);