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)
                {


Reply via email to