[ 
https://issues.apache.org/jira/browse/WICKET-1646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12602678#action_12602678
 ] 

Lonnie Fulton commented on WICKET-1646:
---------------------------------------

This is what i currently do.  I followed microsofts documentation on how to 
fallback to using a ActiveX object if native XMLHTTP is disabled 
(http://msdn.microsoft.com/en-us/library/ms537505(VS.85).aspx) and simply added 
the following to wicket-ajax.js.  You just need to make sure this snippet is 
inserted before Wicket.Ajax = { ...  is called.  

/** 
 * Check to see if the native XMLHttpRequest has been disabled for IE7,
 * if so fallback to using the ActiveXObject.
 */
if (Wicket.Browser.isIE7() && !window.XMLHttpRequest) {
    window.XMLHttpRequest = function() {
        try {
            return new ActiveXObject('MSXML2.XMLHTTP.3.0');
        }
        catch (ex) {
            return null;
        }
    }
} 

I have been using this for awhile on our production server and have had no 
problems.  I hope this can be incorporated into 1.3.4.

> AjaxFormComponentUpdatingBehavior not working correctly when using IE 7
> -----------------------------------------------------------------------
>
>                 Key: WICKET-1646
>                 URL: https://issues.apache.org/jira/browse/WICKET-1646
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.3.4
>         Environment: OS: Windows XP SP2
> ServletContainer: Jetty 6.1.6
> Browser: IE 7
>            Reporter: Jarmar Fowler
>            Assignee: Matej Knopp
>             Fix For: 1.3.4
>
>
> AjaxFormComponentUpdatingBehavior works with Firefox, but doesn't work when 
> using IE7.  
> I also observed similar problems when using AjaxEventBehavior as well. 
> The error returned via the ajax debug console was: "Could not locate ajax 
> transport. Your browser does not support the required XMLHttpRequest object 
> or wicket could not gain access to it".
> Below is a simple example that should demonstrate the problem.
> Example.java
> ============================================================
> package example.page;
> import org.apache.wicket.ajax.AjaxRequestTarget;
> import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
> import org.apache.wicket.markup.html.WebPage;
> import org.apache.wicket.markup.html.basic.Label;
> import org.apache.wicket.markup.html.form.Form;
> import org.apache.wicket.markup.html.form.TextField;
> import org.apache.wicket.model.CompoundPropertyModel;
> import org.apache.wicket.model.PropertyModel;
> public class Example extends WebPage {
>                private int age;
>                public Example() {
>                                Form form = new Form("form", new 
> CompoundPropertyModel(this));
>                                add(form);
>                                final Label label = new Label("label", new 
> PropertyModel(this, "age"));
>                                label.setOutputMarkupId(true);
>                                add(label);
>                                final TextField age = new TextField("age");
>                                age.add(new 
> AjaxFormComponentUpdatingBehavior("onblur") {
>                                                /**
>                                                 * 
>                                                 */
>                                                private static final long 
> serialVersionUID = 1L;
>                                                protected void 
> onUpdate(AjaxRequestTarget target) {
>                                                                
> System.out.println("onUpdate triggered");
>                                                                
> target.addComponent(label);
>                                                }
>                                });
>                                form.add(age);
>                }
>                public int getAge() {
>                                return age;
>                }
>                public void setAge(int age) {
>                                this.age = age;
>                }
> }
> Example.html
> ==================================================
> <html>
> <head>
>                <title>Test</title>
> </head>
> <body>
>                <div>
>                                <label wicket:id="label">My Label Goes 
> Here</label>
>                </div>
>                <form wicket:id="form">
>                                <div>Age: <input type="text" wicket:id="age" 
> /></div>
>                                <div>
>                                                <input type="submit" 
> value="Submit" />
>                                </div>
>                </form>
> </body>
> </html>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to