Author: pedro Date: Tue Sep 13 00:41:51 2011 New Revision: 1169989 URL: http://svn.apache.org/viewvc?rev=1169989&view=rev Log: Normalizing the contentWindow.location.replace method behavior. If the location is: http://localhost:8080/ajax/wicket/page?{id} And if we want to navigate to some other page mapped by PageInstanceMapper the current location.replace('page?{id}') works fine, but only for IE9. In IE 6, 7 and 8 it works only with the full page path after the filter one. e.g.: location.replace('wicket/page?{id}') Issue: WICKET-3982
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/wicket-event.js wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/wicket-event.js URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/wicket-event.js?rev=1169989&r1=1169988&r2=1169989&view=diff ============================================================================== --- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/wicket-event.js (original) +++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/wicket-event.js Tue Sep 13 00:41:51 2011 @@ -80,6 +80,13 @@ if (typeof(Wicket.Browser) == "undefined return Wicket.Browser.isIE() && version >= 7; }, + + isIELessThan9: function() { + var index = navigator.userAgent.indexOf("MSIE"); + var version = parseFloat(navigator.userAgent.substring(index + 5)); + return Wicket.Browser.isIE() && version < 9; + }, + isGecko: function() { return /Gecko/.test(navigator.userAgent) && !Wicket.Browser.isSafari(); } Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java?rev=1169989&r1=1169988&r2=1169989&view=diff ============================================================================== --- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java (original) +++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java Tue Sep 13 00:41:51 2011 @@ -1054,6 +1054,8 @@ public class ModalWindow extends Panel { IRequestHandler handler = new RenderPageRequestHandler(new PageProvider(page)); pageUrl = RequestCycle.get().urlFor(handler); + String ie8_pageUrl = RequestCycle.get().mapUrlFor(handler).toString(); + appendAssignment(buffer, "settings.ie8_src", ie8_pageUrl); } appendAssignment(buffer, "settings.src", pageUrl); } Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js?rev=1169989&r1=1169988&r2=1169989&view=diff ============================================================================== --- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js (original) +++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js Tue Sep 13 00:41:51 2011 @@ -630,7 +630,11 @@ Wicket.Window.prototype = { try { - this.content.contentWindow.location.replace(this.settings.src); + if(Wicket.Browser.isIELessThan9()){ + this.content.contentWindow.location.replace(this.settings.ie8_src); + }else{ + this.content.contentWindow.location.replace(this.settings.src); + } } catch(ignore) {