diff --git a/assets/src/appBuilder.js b/assets/src/appBuilder.js index b86d7af..4546ba3 100644 --- a/assets/src/appBuilder.js +++ b/assets/src/appBuilder.js @@ -77,12 +77,12 @@ export default class Builder { enableHotReload(node=null, historySave=true) { if(historySave) this.historySave(document.location, true) - node.addEventListener('click', event => this._onPageChange(event), true) - node.addEventListener('submit', event => this._onPageChange(event), true) - node.addEventListener('popstate', event => this._onPopState(event), true) + node.addEventListener('click', event => this.pageChanged(event), true) + node.addEventListener('submit', event => this.pageChanged(event), true) + node.addEventListener('popstate', event => this.statePopped(event), true) } - _onPageChange(event) { + pageChanged(event) { let submit = event.type == 'submit'; let target = submit || event.target.tagName == 'A' ? event.target : event.target.closest('a'); @@ -91,8 +91,12 @@ export default class Builder { let url = submit ? target.getAttribute('action') || '' : target.getAttribute('href'); - if(url===null || !(url === '' || url.startsWith('/') || url.startsWith('?'))) + let domain = window.location.protocol + '//' + window.location.hostname + let stay = (url === '' || url.startsWith('/') || url.startsWith('?') || + url.startsWith(domain)) && url.indexOf('wp-admin') == -1 + if(url===null || !stay) { return; + } let options = {}; if(submit) { @@ -107,10 +111,11 @@ export default class Builder { event.stopPropagation(); } - _onPopState(event) { - if(event.state && event.state.content) + statePopped(event) { + const state = event.state + if(state && state.content) // document.title = this.title; - this.historyLoad(event.state); + this.historyLoad(state); } /// Save application state into browser history