WICKET-4909 ModalWindow overwrites window.onbeforeunload
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/637690f5 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/637690f5 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/637690f5 Branch: refs/heads/sandbox/WICKET-4686 Commit: 637690f59dae71408b4f23ba34e3350e82aa78a2 Parents: a4e6bd6 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Tue Dec 17 17:28:13 2013 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Tue Dec 17 17:28:13 2013 +0200 ---------------------------------------------------------------------- .../extensions/ajax/markup/html/modal/res/modal.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/637690f5/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js index a41aa85..51c4d3c 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js @@ -731,10 +731,10 @@ } }, this); - // preserve old beforeunload handler - this.old_onbeforeunload = window.onbeforeunload; - if (this.settings.unloadConfirmation) { + // preserve old beforeunload handler + this.old_onbeforeunload = window.onbeforeunload; + // new beforeunload handler - ask user before reloading window window.onbeforeunload = function() { return "Reloading this page will cause the modal window to disappear."; @@ -828,9 +828,11 @@ window.onunload = this.old_onunload; this.old_onunload = null; - // restore old beforeunload handler - window.onbeforeunload = this.old_onbeforeunload; - this.old_onbeforeunload = null; + if (this.old_onbeforeunload) { + // restore old beforeunload handler + window.onbeforeunload = this.old_onbeforeunload; + this.old_onbeforeunload = null; + } // hids and cleanup the mask this.destroyMask();
